zoukankan      html  css  js  c++  java
  • 实现ssh的无password登录

    这里所说的ssh是指OpenSSH SSHclient。是用于登录远程主机。而且在远程主机上运行命令。它的目的是替换rlogin和rsh,同一时候在不安全的网络之上,两个互不信任的主机之间,提供加密的、安全的通信连接。X11连接和随意TCP/IPport均能够通过此安全通道转发。

    在RedHat 6.1中,默认安装的OpenSSL是一种比較常见的SSH服务端和client软件。默认port是22。

    SSH服务端事实上是一个守护进程(daemon),在后台执行并对应来自client的连接请求。服务端通常是sshd进程,提供了对远程连接的处理。一般包含公共密钥认证、密钥交换、对称密钥加密和非安全连接等。

    SSHclient程序包含ssh程序。及scp(远程拷贝)、slogin(远程登录)、sftp(安全文件传输)等其它的应用程序。

    在有些情况下,须要实现ssh的无password登录。或者称为免password登录。

    比方:Hadoop的伪分布式模式部署、全然分布式模式部署。

    配置

    有两台主机:主机A:192.168.1.132,主机B:192.168.1.133,须要配置主机A无password登录主机A、主机B。

    生成私钥、公钥

    在主机A上:

    $ cd ~/.ssh(假设没有改目录。直接创建一个)
    $ ssh-keygen -t rsa
    

    上面的ssh-keygen命令中。參数-t是生成密钥的方式,有三种方式:协议版本号1的rsa1、协议版本号2的rsa和dsa。

    通常选rsa或dsa。既安全。又省事。

    这个时候会打印一些运行结果及交互操作。一路回车就可以。

    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/lxh/.ssh/id_rsa): 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /home/lxh/.ssh/id_rsa.
    Your public key has been saved in /home/lxh/.ssh/id_rsa.pub.
    The key fingerprint is:
    2e:34:7c:3a:be:e4:3b:93:2f:1d:32:4f:2d:fe:13:a1 lxh@master
    The key's randomart image is:
    +--[ RSA 2048]----+
    |                 |
    |                 |
    |                 |
    |     .    .      |
    |      + So .     |
    |     .o=E o      |
    |      =O.o .     |
    |     +=o+ .      |
    |      =B....     |
    +-----------------+
    

    生成存放RSA/DSA的公钥

    直接复制生成的id_rsa.pub文件就可以。

    $ cp id_rsa.pub authorized_keys
    $ chmod 600 authorized_keys
    

    按理说此时就能够无password登录本机了,即通过命令:

    $ ssh localhost
    

    第一次须要输入一个yes,由于须要在第一次登录该主机时记录实用户登录。之后就不会出现了。

    复制公钥

    然后将公钥文件authorized_keys复制到主机B的同样位置上。

    $ scp authorized_keys 192.168.1.133:~/.ssh
    

    由于已经在主机A上改动过authorized_keys的权限,一般主机B上也是600格式。假设不是。就改动主机B上的authorized_keys文件权限为600。

    $ chmod 600 authorized_keys
    

    普通情况下,能够通过主机A无password登录主机A和主机B了。

    FQA

    登录时出现“Agent admitted failure to sign using the key.”

    在~/.ssh文件夹中运行

    $ ssh-add
    

    出现以下的信息,就成了:

    Identity added: /home/lxh/.ssh/id_rsa (/home/lxh/.ssh/id_rsa)
    

    假设提示以下的信息:

    Could not open a connection to your authenticationh agent
    

    就运行:

    ssh-agent bash
    

    没有错误信息。但须要输入password登录

    须要查看一下.ssh文件夹和authorizedkeys文件的权限,须要.ssh文件夹的权限为700,authorizedkeys文件的权限为600。假设主机A连接主机B,就在主机B上运行:

    $chmod 700 ~/.ssh
    $chmod 600 ~/.ssh/authorized_keys
    

    ssh代理未开启

    通过命令查看ssh代理是否开启

    $ ps -ef|grep ssh-agent
    

    假设开启了,直接kill掉,然后启动ssh代理。

    $ ssh-agent
    

    假设还是不行。就重新启动ssh服务:

    # service sshd restart(须要root权限)
    
  • 相关阅读:
    JS的type类型为 text/template
    Vue之x-template(2)
    Vue之x-template(1)
    vue之$mount
    console.log()与console.dir()
    Less用法注意事项
    一次 Linux 系统被攻击的分析过程
    WebAR 如何改变增强现实的未来
    开发中的测试名词解释
    Flutter 同步系统的 HTTP 代理设置
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7350040.html
Copyright © 2011-2022 走看看