注释:
我的虚拟机配置的是NAT网络连接方式,虚拟机A的IP地址:192.168.21.11, 虚拟机B的IP地址:192.168.21.12,两台机器之间要能ping通,下面是虚拟机A可以免密登录虚拟机B具体配置方式(以下都是以root用户为例)。
操作步骤如下:
步骤1:生成秘钥对,可以根据算法在/root/.ssh目录下生成两个秘钥文件,id_rsa(私钥文件),id_rsa.pub(公钥文件)。在虚拟机A中执行命令:ssh-keygen(遇到提示时,直接回车即可)。
步骤2:将虚拟机A生成的公钥文件拷贝并且追加到虚拟机B中的授权列表文件/root/.ssh/authorized_keys。在虚拟机A中执行命令:ssh-copy-id。
步骤3:然后在虚拟机A的命令窗口中再次登录虚拟机B就不需要数据密码了,直接ssh 192.168.21.11即可。
免密登录的原理如下:
免密登录配置时,先在虚拟机A中生成秘钥对,就是公钥和私钥,把公钥的内容复制并追加到虚拟机B中的授权列表文件authorrized_keys,当在虚拟机A中再次登录B时,会去authorrized_keys文件中匹配虚拟机A的秘钥,如果匹配成功,虚拟机B会生成一串随机字符串经加密之后发送给虚拟机A的私钥,然后虚拟机A把私钥的内容解密成明文再返回给虚拟机B,此时虚拟机B判断返回的明文是正确的,就允许虚拟机A免密登录虚拟机B.如果有其他的服务器也想要免密登录虚拟机B,都需要先生成秘钥,然后追加到虚拟机B的授权列表文件authorrized_keys中,重复虚拟机A的过程。
![]()
ssh免密登录配置示意图