SSH公鑰認證
關於公鑰認證的原理,維基百科上的這個條目是一個很好的起點: http://en.wikipedia.org/wiki/Public-key_cryptography。
如果你的主目錄下不存在 .ssh 目錄,說明你的 SSH 公鑰/私鑰對尚未創建。可以用這個命令創建:
$ ssh-keygen
該命令會在用戶主目錄下創建 .ssh 目錄,並在其中創建兩個文件:
-
id_rsa
私鑰文件。是基於 RSA 算法創建。該私鑰文件要妥善保管,不要泄漏。
-
id_rsa.pub
公鑰文件。和 id_rsa 文件是一對兒,該文件作爲公鑰文件,可以公開。
創建了自己的公鑰/私鑰對後,就可以使用下面的命令,實現無口令登錄遠程服務器,即用公鑰認證取代口令認證。
$ ssh-copy-id -i .ssh/id_rsa.pub user@server
說明:
- 該命令會提示輸入用戶 user 在 server 上的SSH登錄口令。
- 當此命令執行成功後,再以 user 用戶登錄 server 遠程主機時,不必輸入口令直接登錄。
- 該命令實際上將 .ssh/id_rsa.pub 公鑰文件追加到遠程主機 server 的 user 主目錄下的 .ssh/authorized_keys 文件中。
檢查公鑰認證是否生效,運行SSH到遠程主機,正常的話應該直接登錄成功。如果要求輸入口令則表明公鑰認證配置存在問題。如果SSH服務存在問題,可以通過查看服務器端的 /var/log/auth.log 進行診斷。
ssh-copy-id : https://anoncvs.mindrot.org/openssh/contrib/ssh-copy-id?view=co
http://henry.precheur.org/system/ssh-copy-id