前言
Linux系统维护这块向来是个麻烦事,遇到负载均衡或多主机维护每次登录都要输入密码,一次两次还好,多了,真心繁琐,下面就分享一下,Linux如何免密码登录其他主机。
- 演示系统:CentOS 7.9.2009
- 主机IP分别为:192.168.17.131(node1)、192.168.17.132(master)、192.168.17.133(node2)
下面以node1
主机进行教程演示
教程
1、生成公钥
生成公钥前先查看本地有没有生成密钥,如果有的话,再次生成会影响前面已经设置好的
cat ~/.ssh/id_rsa.pub
# 如下显示则没有生成
cat: /root/.ssh/id_rsa.pub: No such file or directory
如果没有的话,输入下面的命令来在本机上生成公钥和私钥
ssh-keygen -t rsa
连续按3次回车,生成之后会在用户的根目录生成一个.ssh
的文件夹,此时进入该文件夹可看到相关秘钥信息
authorized_keys
:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥(初始不存在该文件)id_rsa
:生成的私钥文件id_rsa.pub
:生成的公钥文件
know_hosts
:已知的主机公钥清单(初始不存在该文件)
2、拷贝公钥文件到相关服务器上
cd .ssh
#将公钥拷贝到其他服务器
ssh-copy-id -i [ip]
拷贝公钥时会验证输入对面主机的登录信息,此时node1
和master
可直接使用ssh [ip]
命令进行相互切换,这时我们再将需要切换登录的主机再以相同的操作拷贝一份秘钥到对方主机上。
双方主机第一次登录到对方主机需要身份验证,后面的登录就无需在验证身份。
若遇到相关无法登录问题,多半是权限问题,.ssh
目录的权限必须是700,若不是可使用该命令chmod 700 .ssh
将其设置为700