我正在設定一個小型 OpenSSH 伺服器,以便我無需直接坐在家用電腦前即可存取重要文件。我已經成功地完全設定了伺服器,但現在我想設定金鑰身份驗證(這樣別人就更難闖入)。
我已經從 Lubuntu 設定複製了金鑰,將它們複製到我的 Windows 計算機,並將它們轉換為.ppk
格式普蒂根。在本SSH -> Auth
部分中,我選擇了RSA.ppk
金鑰檔案、儲存設定並登入伺服器。我輸入我的用戶名,但之後我收到輸出:Server refused our key
。
我已取消HostKey
註解RSA
、ECDSA
和ED25519
中的行sshd_config
。我不知道我還應該做什麼。
答案1
我使用 PuTTYgen 創建了一個隨機的公鑰/私鑰對,並將輸出框中的文字貼到文件中~/.ssh/authorized_keys
。密鑰文件驗證工作完美。
答案2
SSH 使用兩組不同的非對稱(私鑰/公鑰)金鑰——一組用於向用戶端驗證主機/伺服器,另一組(可選)用於向主機/伺服器驗證用戶端。
HostKey
中的配置適用sshd_config
於主機的金鑰,不適用於任何用戶端。sshd_config
為用戶端啟用 pubkey 驗證的指令是PubKeyAuthentication
,但您不需要指定(或通常取消註解)它,因為它預設為啟用狀態。
應該有效,對我來說,用 PuTTYgen 轉換 OpenSSH 生成的密鑰並按照您的描述在 PuTTY 中使用它,但是僅有的如果它適用~/.ssh/authorized_keys
於適當的使用者 (*)—這對於任何客戶端金鑰都是必需的,無論在何處或如何產生。在一個 Unix 系統上產生金鑰不會自動將其新增至authorized_keys
該系統(因為您通常不需要 ssh 來存取您已經所在的系統)或任何其他系統(因為該系統無法知道您還使用了哪些其他系統)可能希望訪問,包括可能在未來幾年)。您提到僅新增authorized_keys
PuTTYgen 產生的新金鑰,而不是 Unix 產生和 PuTTYgen 轉換的金鑰。
(*) 或其他位置(如果由AuthorizedKeysFile
in指定) sshd_config
,但這種情況很少見