Ssh
一位使用者的 SSH 密鑰失敗
我剛剛建立了一個新的 Debian 伺服器。我禁用了 root SSH 和密碼驗證,所以你必須使用密鑰文件。
對於我的主要使用者,一切都按預期工作。我使用
ssh-keygen -t dsa
並得到了自己的公鑰和私鑰。將一個放在授權密鑰中,將另一個放在本地的 pem 文件中。我想創建一個可以用來部署東西的使用者,所以我做了基本相同的過程。我
adduser
編輯了它,創建了一個.ssh
文件夾,執行ssh-keygen -t dsa
(我也嘗試了 RSA),將密鑰放在適當的位置。沒運氣。我收到一個
Permission denied (publickey)
錯誤。當我使用與有效帳戶完全相同的密鑰時,同樣的錯誤。當我啟用密碼驗證時,我可以使用密碼通過 SSH 登錄。我該如何調試?
編輯
詳細的 ssh 輸出(deployer.pem 是正確的鍵):
debug2:鍵:/Users/eli/.ec2/deployer.pem (0x100126830) debug2:鍵:/Users/eli/.ec2/deployer.pem (0x100126b30) debug2:鍵:/Users/eli/.ec2/deployer.pem (0x0) debug1:可以繼續的身份驗證:publickey debug3:重新開始,傳遞了不同的列表公鑰 debug3:首選公鑰、鍵盤互動、密碼 debug3: authmethod_lookup 公鑰 debug3:剩餘首選:鍵盤互動,密碼 debug3:authmethod_is_enabled 公鑰 debug1:下一個認證方式:publickey debug1:提供公鑰:/Users/eli/.ssh/id_rsa 調試3:send_pubkey_test debug2:我們發送了一個公鑰包,等待回复 debug1:可以繼續的身份驗證:publickey debug1:提供公鑰:eli.pem 調試3:send_pubkey_test debug2:我們發送了一個公鑰包,等待回复 debug1:可以繼續的身份驗證:publickey debug1:提供公鑰:/Users/eli/.ec2/deployer.pem 調試3:send_pubkey_test debug2:我們發送了一個公鑰包,等待回复 debug1:可以繼續的身份驗證:publickey debug1:提供公鑰:/Users/eli/.ec2/deployer.pem 調試3:send_pubkey_test debug2:我們發送了一個公鑰包,等待回复 debug1:可以繼續的身份驗證:publickey debug1:嘗試私鑰:/Users/eli/.ec2/deployer.pem debug1:讀取 PEM 私鑰完成:輸入 DSA 調試3:sign_and_send_pubkey debug2:我們發送了一個公鑰包,等待回复 debug1:可以繼續的身份驗證:publickey debug2:我們沒有發送數據包,禁用方法 debug1:沒有更多的身份驗證方法可以嘗試。 權限被拒絕(公鑰)。
兩部分:首先,在您的 ssh 伺服器上進行調試。編輯
/etc/ssh/sshd_config
並將 LogLevel 增加到 DEBUG。然後強制你的 ssh 伺服器重新載入它的配置killall -HUP <sshd pid>
。這將導致伺服器向您的
/var/log/secure
和/或/var/log/auth
日誌文件添加更多詳細資訊。其次(實際上你不能先嘗試這個),增加客戶端的調試級別。使用 ssh 進入盒子
$ ssh -vvv hostname
這將列印出更多關於流程失敗的資訊。
如果您確實在 ssh 伺服器上調高了調試級別,請不要忘記在完成後將其調低。