如何實現 ssh 無密碼登入

Dan Nanni發表於2015-05-14

首先,你需要以使用者“aliceA”的身份登入到hostA上。
然後,使用ssh-keygen生成一對rsa公私鑰,生成的金鑰對會存放在~/.ssh目錄下。
$ ssh-keygen -t rsa
接下來,使用下面的命令在目標主機hostB上的aliceB使用者目錄下建立~/.ssh目錄。如果在aliceB@hostB上已經存在.ssh目錄,這一步會被略過。
$ ssh aliceB@hostB mkdir -p .ssh
最後,將hostA上使用者“aliceA”的公鑰拷貝到aliceB@hostB上,來實現無密碼ssh。
$ cat .ssh/id_rsa.pub | ssh aliceB@hostB 'cat >> .ssh/authorized_keys'
自此以後,從aliceA@hostA上ssh到aliceB@hostB上再也不需要輸入密碼。(LCTT 譯註:上述的建立目錄並複製的操作也可以通過一個 ssh-copy-id 命令一步完成:ssh-copy-id -i ~/.ssh/id_rsa.pub aliceB@hostB)

疑難解答
  • 即使在金鑰認證生效後,你可能仍然需要輸入SSH密碼。如果遇到這種情況,請檢查系統日誌(如/var/log/secure)以檢視是否出現下面的異常。Authentication refused: bad ownership or modes for file /home/aliceB/.ssh/authorized_keys
    在這種情況下,金鑰認證的失敗是由於~/.ssh/authorized_keys檔案的許可權或擁有者不正確。一般情況,如果這個檔案對除了你之外的所有使用者都可讀,就會出現這個錯誤。用下面的方式改變檔案的許可權以修正錯誤。
$ chmod 700 ~/.ssh/authorized_keys
來自:碼農網
評論(1)

相關文章