运维是一个耐心的活,同时又是一个需要创新的活。今天工作需要维护几十台Linux机器,之前知道通过保存密钥信息在远程机器的authorized_keys中,但是多台机器互相免密码登录就很费事。
重新有梳理下ssh密钥登录的流程,远程机器保存公钥匙信息,ssh发送请求要登录到远程机器时,远程机器会随机返回一组字符串给登录用户,登录用户接收到信息并使用与远程机器对应的私钥对字符串进行加密操作,再发送给远程服务器,服务器使用保存的公钥信息对发送的信息进行解密,解密的信息跟之前发送的字符串是一致的,那么就判断其登录成功。
根据流程需要生成公钥和私钥,把公钥信息修改部分并保存到所有机器节点authorized_keys文件中,并把私钥传过去,这样所有机器就可以互相访问了。
生成密钥信息:
ssh-keygen -t rsa
复制公钥信息到authorized_keys文件中并修改主机名部分,区别原始公钥:
复制私钥文件到所有机器上
好了,经过上述操作,只需要生成一次密钥对就可以所有机器互相访问了。