有時我們想要通過其他的賬戶進行登錄SSH,通常我們在登錄的時候需要重新輸入密碼。不過對於一些不想記太多密碼的用戶來說,這樣就顯得有些麻煩了,那麼該怎麼才能不輸入密碼進行登錄呢?
解決方法:
1. 你需要以用戶“aliceA”的身份登錄到hostA上。
2. 使用ssh-keygen生成一對rsa公私鑰,生成的密鑰對會存放在~/.ssh目錄下。
$ ssh-keygen -t rsa
3. 使用下面的命令在目標主機hostB上的aliceB用戶目錄下創建~/.ssh目錄。如果在aliceB@hostB上已經存在.ssh目錄,這一步會被略過。
$ ssh aliceB@hostB mkdir -p .ssh
4. 將hostA上用戶“aliceA”的公鑰拷貝到aliceB@hostB上,來實現無密碼ssh。
$ cat .ssh/id_rsa.pub | ssh aliceB@hostB ‘cat 》》 .ssh/authorized_keys’
自此以後,從aliceA@hostA上ssh到aliceB@hostB上再也不需要輸入密碼。(小編譯注:上述的創建目錄並復制的操作也可以通過一個 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
以上就是設置Linux系統中不輸入密碼登錄SSH服務器的方法了。有遇到這種情況的用戶,就按照上面的方法進行設置吧。