不接受私鑰(OpenSSH 客戶端除錯)
預設情況下,大多數資訊對使用者是隱藏的。你可以使用 -v
開關獲取連線嘗試的詳細日誌,這通常會通過顯示行為與預期不同的原因來查明問題。
假設你使用 ssh
(或其他 OpenSSH 客戶端,如 sftp
或 scp
)連線到伺服器 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