不接受私鑰(OpenSSH 客戶端除錯)

預設情況下,大多數資訊對使用者是隱藏的。你可以使用 -v 開關獲取連線嘗試的詳細日誌,這通常會通過顯示行為與預期不同的原因來查明問題。

假設你使用 ssh(或其他 OpenSSH 客戶端,如 sftpscp)連線到伺服器 example.com,伺服器不接受你的私鑰,伺服器要求輸入密碼(或拒絕連線):

$ ssh example.com
user@example.com's password: 

嘗試使用 -vvv 開關執行 ssh,它將寫出所有除錯訊息。這將是很多資訊,但過了一段時間,很容易理解:

$ ssh -vvv example.com

最常見的問題是金鑰不在預期的位置。你可以期待出現類似的行,抱怨丟失的檔案。檢查你的檔案是否真正被讀取是一個良好的開端:

debug1: identity file /home/username/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/username/.ssh/id_dsa-cert type -1

我們可以繼續進行身份驗證部分。金鑰可能會提供,但由於伺服器配置問題而被伺服器拒絕。日誌可能看起來像這樣:

debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: username@localhost
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password