多台服务器-SSH免密登录设置

时间:2024-09-08 10:04:32

在4台服务器-SSH免密登录设置,如以下4台服务器

master1 node001 node002 node003

我想在master1对4台服务器进行拉取或者分发任务或者是集群服务器的批量操作,但是每次都要输出密码,这个过程比较影响操作效率???

以下给出解决方法---->设置密钥验证

密钥验证流程如图

多台服务器-SSH免密登录设置

原理:

即在源服务器上先生成一份公钥和一份密钥,将公钥复制到目标服务器,利用命令将公钥添加至目标服务器的授权列表(authorized_keys)。当有服务器带着公钥申请连接服务器时,目标服务器首先在authorized_keys中查找是否存在该公钥,如果存在则开始进行验证。首先生成一个随机字符串,利用对应公钥进行加密,然后返回给申请连接的服务器,申请连接服务器利用私钥进行解密,再将字符串返回给目标服务器完成验证;

设置步骤:

1.在master1生成RSA公钥和私钥

输入ssh-keygen -t rsa,然后用默认配置,一直按Enter键;

2.进入生成密钥所在的文件目录

cd /root/.ssh/

3.将公钥(名为id_rsa.pub文件)追加到认证文件(名为authorized_keys文件),先后执行以下指令

  注意:这里我用的是服务器内网IP

(1)ssh-copy-id master1的IP

(2)ssh-copy-id node001的IP

(3)ssh-copy-id node002的IP

(4)ssh-copy-id node003的IP

多台服务器-SSH免密登录设置

4.验证完成,进入目标服务器的 /root/.ssh 文件夹中查看授权列表authorized_keys发现原服务器的公钥已经添加进去

5.如果不成功就注意检车这两项:

(1)解析主机名cat /hostname

(2)修改配置ssh_config

cd /etc/ssh

RSAAuthentication yes将这一行的注释取消掉