假設你是hostA上的一個用戶"aliceA",想以用戶“aliceB”的身份ssh到hostB上,但又不想輸入密碼。那麼,你可以參考這篇教程實現ssd無密碼登錄。
首先,你需要以用戶“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
作者:Dan Nanni譯者:KayGuoWhu校對:wxy
本文由 LCTT原創翻譯,Linux中國榮譽推出
本文由 LCTT 原創翻譯,Linux中國首發。也想加入譯者行列,為開源做一些自己的貢獻麼?歡迎加入LCTT!
翻譯工作和譯文發表僅用于學習和交流目的,翻譯工作遵照CC 協議規定,如果我們的工作有侵犯到您的權益,請及時聯系我們。
歡迎遵照CC 協議規定轉載,敬請在正文中标注并保留原文/譯文鍊接和作者/譯者等信息。
文章僅代表作者的知識和看法,如有不同觀點,請樓下排隊吐槽:D
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!