[Ubuntu] 使用 PuTTY 產生的 SSH KEY 來達到免密碼登入

前言

  最近看了一下 VPS 的 log,發現一直有人在踹密碼,所以決定把 ssh 密碼驗證給關掉,改用 SSH KEY 來做登入驗證。

操作

1. 產生一對公私鑰

  • 首先在 Windows 上執行 PuTTYgen
  • 選擇 Genarate a public/private key pair
  • 產生後將 Private Key 給儲存起來
  • 接下來將 Public Key 欄位複製起來,待會要用

2. 將公鑰儲存至遠端主機

  • 登入遠端主機
  • 編輯 .ssh/authorized_keys
    1
    vim .ssh/authorized_keys
  • 將剛剛複製的 public key 給貼上,authorized_keys 可以儲存複數支公鑰
  • 儲存完畢後登出

3. 使用 PuTTY 測試登入

  • 打開 PuTTY
  • 到左半邊的 Connection > SSH > Auth 內找到 Private key file for authentication 選擇剛剛儲存的私鑰
  • 回到 Session,輸入遠端主機 IP 位置
    1
    [email protected]
  • 測試一下是否能正常登入

4. 修改 ssh 設定

  • 成功的話接下來編輯 /etc/ssh/sshd_config 關閉密碼驗證

    1
    sudo vim /etc/ssh/sshd_config
  • 找到下面兩行,關閉 root 登入以及關閉密碼驗證

    1
    2
    PermitRootLogin no
    PasswordAuthentication no
  • 儲存後重啟服務

    1
    sudo service sshd restart

5. 使用 PuTTY 確認密碼驗證及 root 帳號登入是否成功關閉

  • 成功關閉的話 PuTTY 會彈出下列訊息
    1
    Disconnected: No supported authentication methods available (server sent: publickey)

參考資料