多台linux主机免密码登录

前言

很多情况, 要配置集群或者为了登录方便等等, 可以配置ssh多台主机之间免密码登录

原理

现在假设有二台主机A, B,如果要A要免密码登录B, 则需要把A的public key放在B的授权文件中, 反之亦然

做法

现在假设有A, B, C三台主机要互相信任, 方法如下:
例如A主机要免密码登录B主机和C主机:
1. 在A主机执行如下命令:

    ssh-keygen -t rsa

连续按下三次回车即可
完成后会在~目录下出现 .ssh 文件夹
2. 把 A 主机的 public key 增加到 B 和 C

scp ~/.ssh/id_rsa.pub root@B:.ssh/id_rsadev.pub
scp ~/.ssh/id_rsa.pub root@C:.ssh/id_rsadev.pub

这样 B 主机和 C 主机的 .ssh 文件夹下会出现 id_rsadev.pub 文件, 里面的内容是 A 主机的 public key
3. 在 B 主机和 C 主机上运行如下命令

cat ~/.ssh/id_rsadev.pub >> ~/.ssh/authorized_keys

“>>”会把 A 主机的 public key 添加到 B 主机和 C 主机的授权文件下

注意: 不要使用 “>” 代替 “>>” 这样会覆盖原来的 authorized_keys 文件, 会使得原来能免密登录的主机不能再免密登录了

4.把 B 主机和 C 主机的 public key 也复制到到 AC 主机和 AB 主机, 重复如上步骤