在網上看到很多關於SSH免密登錄的文章,但還是有部分同學在具體操作過程中出現問題,現在按照實際步驟一步一步進行說明:
前置說明:
假設現有三台機器,機器A、B、C,其中機器A需要SSH免密登錄到其他機器;
1、首先修改SSH配置文件,機器A、B、C均需要進行修改;
首先修改機器A:
sudo vi /etc/ssh/sshd_config將以下三個項目之前的注釋符號(#)去掉:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys這三個配置項主要是允許公鑰文件的RSA授權,授權文件為:.ssh/authorized_keys
修改完成後重啟SSH服務,使配置生效;
service sshd restart同樣的方式修改機器B、C的配置文件;
2、檢查是否存在.SSH文件夾
檢查機器B、機器C在用戶的根目錄下(也就是:cd ~)是否存在.ssh文件夾,如果沒有則創建;
3、生成SSH公鑰、私鑰文件,並分發至其他主機
在機器A上生成無密碼的SSH公鑰、私鑰文件:
ssh-keygen -t rsa無需輸入任何信息,一路回車即可,生成完成後會在用戶根路徑下的SSH目錄(cd ~/.ssh)發現:id_rsa、id_rsa.pub兩個文件;
將SSH公鑰導入到本機SSH驗證文件:
cat id_rsa.pub >> authorized_keys將機器A的SSH公鑰分發至機器B、機器C:
scp id_rsa.pub 實際的用戶名@機器B的IP:~/.ssh/authorized_keys scp id_rsa.pub 實際的用戶名@機器C的IP:~/.ssh/authorized_keys{}部分的內容用實際內容替換;
4、檢查文件、文件夾權限:
.ssh文件夾必須700權限,authorized_keys文件必須600權限;
chmod 700 .ssh chmod 600 authorized_keys機器A、B、C均要進行檢查
完成以上操作就可以直接ssh 機器B或機器C的IP地址進行測試,首次連接需要輸入yes確認連接。