Linux中國

如何實現 ssh 無密碼登錄

首先,你需要以用戶「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

疑難解答

  1. 即使在密鑰認證生效後,你可能仍然需要輸入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 

via: http://xmodulo.com/how-to-enable-ssh-login-without.html

作者:Dan Nanni 譯者:KayGuoWhu 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國