CentOS7 不同虚拟机之间的免密登录

以下操作均需对所有虚拟机

1.使用hostname + 名称 修改虚拟机的名称,修改/etc/hosts文件,添加主机IP与名称

192.168.2.1 hostname1
192.168.2.2 hostname2
192.168.2.3 hostname3

2.生成密钥,使用命令

ssh-keygen  -t   rsa

3.生成文件 /root/.ssh/authorized_keys

  • touch /root/.ssh/authoried_keys
  • 使用命令 vi authorized_keys 并将三个主机中的/root/.ssh/id_rsa.pub内容复制进去

4.将authorized_keys 文件内容复制到其他虚拟机的/root/.ssh目录下

5.测试,使用命令

ssh hostname1

(ssh+远程免密登录的主机名)

本人在测试时出现以下问题,可供博友参考:

主机2可以远程登录1与3,1与3可互相远程登录,而主机2不能被其他主机连接

后来发现:

三台主机的IP分别为:

192.168.2.1 hostname1
192.168.120.131 hostname2
192.168.2.3 hostname3

原来主机2与1,3不在同一网段

解决办法

将主机2的网络适配器修改成与1、3相同(关键在于:修改为同一网段)

这时不免疑虑:为什么不同网段的不能远程登录呢?查阅资料了解相关原理:

- 客户端向服务器端发出连接请求 
- 服务器端向客户端发出自己的公钥 
- 客户端使用服务器端的公钥加密通讯密钥然后发给服务器端 
- 如果通讯过程被截获,由于窃听者即使获知公钥和经过公钥加密的内容,但不拥有私 钥依然无法解密(RSA算法) 
- 服务器端接收到密文后,用私钥解密,获知通讯密钥


 

你可能感兴趣的:(Linux)