PuTTY 免密碼登入 SSH

PuTTY 是十分有名的開源 SSH Client, 很多系統管理員也使用它連接 SSH, 而由不用安裝, 十分方便。

以下會介紹在 Putty 使用 Public key 及 Private key 實現免密碼登錄 SSH, 這樣不但省卻了每次輸入複雜密碼的麻煩, 而且也更加安全。

PuTTY 內建沒有產生 SSH private key 的功能, 需要到官方網站下載作者提供的另一個工具 — PuTTYgen:

PuTTY Download Page

去到 PuTTY 官方下載頁面後, 找到 “PuTTYgen”, 下載後無需安裝, 可以直接執行。

1. 開啟了 PuTTYgen 後, 根據預設值便可以, 直接按 “Generate”, 然後將鼠標移到 PuTTYgen 的空白處不斷移動, 直至上面綠色的進度完成為止。

2. 按 “Save public key” 儲存 Public key; 及按 “Save private key” 儲存 Private key.

3. 現在將 Public key 儲存到 SSH Server, 將 “Public key for pasting into OpenSSH authorized_keys file:” 的內容全部複製.

4. 登入遠端主機, 執行以下指令:

$ mkdir ~/.ssh
$ chmod 0700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ 0644 ~/.ssh/authorized_keys

用編輯器開啟 ~/.ssh/authorized_keys:


$ vi ~/.ssh/authorized_keys

把上面第 3 步在 PuTTYgen 複製的 Public key 貼上 (按 i 鍵, 然後按 right click 滑鼠。

儲存檔案後離開編輯器。

5. 開啟 PuTTY, 點選已經儲存了的 Sessions 按 “Load”.

6. 在左邊選單按 “Connection” -> “Data”, 在 “Auto-login username” 輸入登入的使用者名稱.

7. 在 “Connection” -> “SSH” -> “Auth”, 在 “Private key file for authentication:” 選擇在第 2 步儲存的 Private key.

8. 在左邊選單按 “Session”, 按 “Save”.

設定完成後, 現在可以用 PuTTY 直接登錄 SSH Server, 當試過可以正常登錄後, 可以考慮禁止 SSH Server 使用密碼登錄, 以增加系統的安全性。做法是開啟 SSH Server 的檔案 /etc/ssh/sshd_config:

# vi /etc/ssh/sshd_config

找到 PasswordAuthentication 及 UsePAM, 兩個選項都設定成 no, 即這樣:

PasswordAuthentication no
UsePAM no

儲存檔案後, 重新載入 SSH:

# systemctl reload sshd


Leave a Reply