最近公司要求使用跳板機連接服務器,導致原有的用戶名/密碼連接部署方式無法使用,故使用ssh-keygen生成公鑰私鑰進行免密登錄;
1.說明:
'客戶端'指的是你所使用的本地機器;
'服務端'指的是遠程你要連接的機器;
2.在服務端生成公鑰、私鑰命令:
ssh-keygen -t rsa
一路回車即可,以root賬號為例,該命令將在/root/.ssh目錄下面產生一對密鑰id-rsa和id-rsa.pub,其中id_rsa.pub是公鑰。如果使用其他用戶生成,會在相應家目錄~/.ssh下;
3.然后在客戶端/root/.ssh下面創建文件authorized_keys,如果已經有了就不用創建。然后把id_rsa.pub的內容復制到文件內;
4.檢查權限
系統默認~/.ssh/authorized_keys這個文件的權限應該是owner具有讀寫權限,其他的都不能讀寫,即權限應該是600.如果在/etc/ssh/sshd_config 中設置了StrictModes yes則sshd會去檢查~/.ssh/authorized_keys這個文件的文件權限。如果~/.ssh目錄和owner的home目錄可以被其他用戶寫,那也會出現問題。所以要設定下各自的權限;
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
5.嘗試連接
ssh -l root 服務端IP
# 第一次連接輸入yes即可。后續不再需要輸入。
