1. 所有服务器都要安装 ssh 服务
确认本机是否安装了 ssh 服务
[root@master121 ~]# ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:uk75q4dbrmtNTYPqFcCtl7jB+oUBC0XLZsfzasNoSVA.
ECDSA key fingerprint is MD5:dc:34:a2:3e:78:f3:0c:12:a6:a0:ca:8d:22:d6:0b:bb.
Are you sure you want to continue connecting (yes/no)?
2. 在 Master 上生成公钥/私钥对
# 删除旧的密钥文件
[root@master121 ~]# rm ~/.ssh/id_rsa*
# 输入下面的命令,然后全部回车,采用默认值
[root@master121 ~]# ssh-keygen -t rsa
# 查看密钥文件:id_rsa私钥;id_rsa.pub公钥
[root@master121 ~]# ls -la .ssh
3. 将 Master 上生成的公钥导入到各个服务器的认证文件
# 进入.ssh目录
[root@master121 ~]# cd .ssh
# 将公钥信息导入到本机的认证文件中
[root@master121 .ssh]# cat id_rsa.pub >> authorized_keys
# 要保证.ssh和authorized_keys都只有用户自己有写权限,否则验证无效。
[root@master121 .ssh]# chmod 600 ./authorized_keys
[root@master121 .ssh]# chmod 700 -R .ssh
# 将Master服务器.ssh目录下的id_rsa, id_rsa.pub, authorized_keys三个文件拷贝到各个服务器
[root@master121 .ssh]# scp -p ./{id_rsa,id_rsa.pub,authorized_keys} root@192.168.89.121:~/.ssh
[root@master121 .ssh]# scp -p ./{id_rsa,id_rsa.pub,authorized_keys} root@192.168.89.122:~/.ssh
4. 在 Master 上远程登录所有服务器(包括本机)
# 免密登录本机
[root@master121 .ssh]# ssh localhost
[root@master121 .ssh]# ssh 192.168.89.121
[root@master121 .ssh]# ssh 192.168.89.122
[root@master121 .ssh]# ssh 192.168.89.123
# 从SSH登录的远程服务器中退出
[root@slave122 ~]# exit
# 执行完上面的登录操作后,会在.ssh目录下生成一个known_hosts文件
[root@master121 .ssh]# cat known_hosts
localhost ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAA=
192.168.89.121 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAA=
192.168.89.122 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAA=
192.168.89.123 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAA=
# 将Master服务器上的known_hosts文件拷贝到各个slave服务器
[root@master121 .ssh]# scp -p ./known_hosts root@192.168.89.121:~/.ssh
[root@master121 .ssh]# scp -p ./known_hosts root@192.168.89.122:~/.ssh
亲,如果您觉得文章对您有那么一小点点帮助,希望您能给点个赞,谢谢!打赏个一分钱,那我会超级开心(✿◠‿◠)