linux下SSH双机无密码登录设置教程

发布时间:2020-09-08编辑:脚本学堂
本文介绍了linux下ssh实现两台机器无需密码便可登录的设置方法,ssh免密码登录如何配置,有需要的朋友参考下。

怎么实现两台linux机器之间不使用密码即可通过SSH远程登录?不了解的朋友,跟着脚本小编一起来学习下吧。

有两台linux机器A(192.168.0.195),B(192.168.1.210),想通过A机器ssh的方式登录到B机器,且不必输入密码。
原理很简单,rsa公私钥机制,创建一对密钥(包含公钥和私钥),将公钥放入远程需要登录到的那个机器B上,自己保留私钥。
通过A登录远程机器B时,对方验证方法为:使用公钥加密数据,谁能够解密这段数据则证明谁手里有私钥,即谁有权限登录。

以下例子假设:A和B都是通过root用户进行登录,其实通过其他用户登录方法相同。

方法如下:
1,在A机器上的/root/.ssh下执行 :ssh-keygen -t rsa
命令提示输入内容时,都不输入,直接回车。这个命令会产生一对公钥和私钥,名字为id_rsa(访问权限为600)(私钥) 和 id_rsa.pub(公钥)
注意:在产生密钥时,本例子没有设置密码,提示输入passpphrase时,直接回车,没有设置密码。如果设置了密码,可以使用ssh-agent代理,帮实现自动输入passpphrase,这种方式我没有进行实际试验。

2,将公钥也就是id_rsa.pub发送到远程机器上,并修改名称为authorized_keys:
 

复制代码 代码示例:
scp /root/.ssh/id_rsa.pub  root@192.168.1.210:/root/.ssh/
mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys

当然也可以直接采用

复制代码 代码示例:
scp  /root/.ssh/id_rsa.pub 192.168.1.210:/root/.ssh/authorized_keys

在将公钥拷贝到B机器时,可能会显示如下的提示信息,这些信息可以不用考虑,直接Yes就行了:
 

The authenticity of host '192.168.0.195 (192.168.0.195)' can't be established.
RSA key fingerprint is 5a:6f:67:d8:4e:0c:3c:20:1a:7f:3e:5b:d0:6e:5d:34.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.195' (RSA) to the list of known hosts.
Address 192.168.0.195 maps to localhost, but this does not map back to the address - POSSIBLE break-IN ATTEMPT!

只需要在A机器的/etc/hosts中,增加B机器的IP和机器名:192.168.1.210   B 即可消除上述的信息。

B机器上,/root/.ssh/authorized_key的访问权限为644(缺省应该就是这个权限)。
修改B机器的/etc/ssh/ssh_config,将PermitRootLogin 设置为yes,不需要重新启动sshd。(因为此例子是采用root进行登录的)
成功了,在A机器上,用root用户远程登录B机器:ssh 192.168.1.210

如果不是用root用户远程登录B机器:ssh –l
user1 192.168.1.210。这种情况下,公钥就应该是放在user1这个用户的.ssh/下了。