在4台服務器-SSH免密登錄設置,如以下4台服務器
master1 node001 node002 node003
我想在master1對4台服務器進行拉取或者分發任務或者是集群服務器的批量操作,但是每次都要輸出密碼,這個過程比較影響操作效率???
以下給出解決方法---->設置密鑰驗證
密鑰驗證流程如圖
原理:
即在源服務器上先生成一份公鑰和一份密鑰,將公鑰復制到目標服務器,利用命令將公鑰添加至目標服務器的授權列表(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
4.驗證完成,進入目標服務器的 /root/.ssh 文件夾中查看授權列表authorized_keys發現原服務器的公鑰已經添加進去
5.如果不成功就注意檢車這兩項:
(1)解析主機名cat /hostname
(2)修改配置ssh_config
cd /etc/ssh
RSAAuthentication yes將這一行的注釋取消掉