标签:
大部份情況下用 ssh 連線到 Linux 主機,就是連上去後打帳號、密碼後登入,但其實 ssh 還提供公鑰認證的方式,就是在本機安裝一把私鑰,在 Linux 主機上安裝一把公鑰,那麼使用 ssh 連線時,就可以直接連線,不需要輸入帳號、密碼,方法如下: (這裡使用 putty 連線 Linux)
執行 PuTTY Key Generator 產生公私鑰,如下圖,按【Generate】,然後滑鼠要一直動,這個軟體會根據滑鼠軌跡計算出公私鑰。當產生出來後,按【Save public key】及【Save private key】將公私鑰儲存。(假設儲存的檔名為 steven.pub 及 steven.ppk)
如下圖,輸入要連線的主機的 IP 或 host name,並為這個 session 取個名稱後按【Save」。
於 Auto-login username 處輸入要登入的帳號。
於 Private key file for authentication 設定私鑰的檔名,然後點選左邊的 Session,回到最開頭的那個畫面後按【Save】,將上述的設定儲存。
使用 ssh-copy-id 將公鑰部署到 Linux Server 上,steven.pub 是公鑰檔名,steven 是帳號,192.168.253.128 是主機的 IP。
ssh-copy-id -i steven.pub steven@192.168.253.128
部署上去後,在 Linux 主機上的 /home/steven/.ssh 目錄下,會出現一個名為 authorized_keys 的檔案,公鑰被放入這個檔案裡了! 如果這個檔案原本就已存在,這一次部署的公鑰會被 append 在檔案後頭。部署後要記得檢查一下這個檔案的權限必須是 644,且使用者和群組需要是 steven steven,如下圖所示,如果不是當然就自己改一下…
chmod 644 authorized_keys chown steven.steven authorized_keys
使用 root 權限,開啟 /etc/sshd_config,這個檔有很多選項,下面只列出要設定的部份,因為我們產生的是 RSA 演算法的公私鑰,所以進行如下設定,這些設定簡單的說,就是開啟 RSA public key 授權,並指明 public key 所放置的位置。其實這些選項原本就都存在於 sshd_config 檔裡,只是被 # 設成註解,只要找到這些選項將 # 移除就可以了。
HostKey /etc/ssh/ssh_host_rsa_key RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
修改完 ssh 設定必須重啟服務,如下:
service sshd restart
開啟 putty 選擇一開始我們儲存的那個 session,按【Open】進行連線,不需要輸入帳號、密碼,即可以看到如下畫面,表示已登入成功。
标签:
原文地址:http://www.cnblogs.com/stevwn/p/4294293.html