Linux系统SSH无密码登录远端主机

SSH无密码登录远端主机是通过非对称密钥认证方式实现的。假设A主机要用SSH登录B主机,需要在A主机上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到B主机上。当A通过SSH连接B时,B就会生成一个随机数并用A的公钥对随机数进行加密,并发送给A。A收到加密数之后再用私钥解密,并将解密数回传给B,B确认解密数无误之后就允许A进行连接了。省去了输入密码的过程。

要实现无密码登录需要有ssh和rsync两个服务,没有这两个服务可以通过apt-get或者yum联网下载。

步骤图片中有两个主机:gpf-Thinkpad-X31和pve3,gpf-Thinkpad-X31即表示上面提到的A主机,pve3表示B主机,具体操作步骤如下:

1.      在主机A中输入ssh-keygen  –t  rsa –P  ''''。 这条命是生成无密码密钥对,询问其保存路径时直接回车采用默认路径,也可自定义输出路径。该命令生成的密钥对:id_rsa和id_rsa.pub,默认存储在~/.ssh目录下。

2.      查看~/.ssh目录中文件如下。id_rsa为私钥文件,id_rsa.pub为公钥文件。


3.      在A主机中把id_rsa.pub追加到授权的key里面去。命令为:cat  ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys


产生的authorized_keys 文件必须具有读和写的权限,如上图所示,如果没有这样的权限,可按如下命令更改:chmod  600  ~/.ssh/authorized_keys

 

4.      在主机A用root用户修改/etc/ssh/sshd_config文件的内容,使其无密码登录有效。更改的结果如下图所示。(该文件中#开头表示该行为注释,将下面三行的注释去掉并修改成如下值即可)

5.      设置完之后使用service sshd restart命令重启SSH服务,才能使刚才设置有效。

6.      将A主机产生的id_rsa.pub文件复制到B主机当中。若A主机中有scp命令可以用该命令复制文件,格式为 scp  ~/.ssh/id_rsa.pub  远程用户名@远程服务器IP或主机名:目录位置。若无scp命令可采用传统方法拷贝文件。


7.      在B主机的用户目录下建立 .ssh文件夹,并修改使其具有读、写和执行权限(必须要有的)。并将从A主机拷贝的公钥追加写入.ssh文件夹中的authorized_keys文件当中,并使authorized_keys文件具有读和写的权限。(此处我已经建立了.ssh目录和authorized_keys文件,因此没有显示相关操作步骤)

8.      完成上述步骤后可从A主机用SSH登录B主机查看效果。

可以看到不需要输入密码即可登录。

 

需要注意的一点是:我的实验中主机A、B均在root用户下操作,也就是说A主机只有在root用户下远程登录B主机的root用户才可以实现无密码登录。因此,如果要实现A主机的m用户可以远程登录B主机的n用户,则对A主机的操作要在m用户下完成,B主机要做要在n用户下完成。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值