為什麼使用authorized_keys通過ssh自動登錄不起作用?
我創建了一個私有/公共 dsa-keypair。我已將公鑰放在伺服器上
~/.ssh/authorized_keys
一切都像我的其他伺服器一樣設置,但似乎伺服器只是無視我的努力。
儘管您的問題可能已經被其他答案解決了,但我已經將自己鎖定在足夠多的機器之外,無法在退出之前驗證 sshd_config 更改,因此提出了以下過程,這可能對未來調試 sshd 配置更改有用:
在測試後驗證行為符合您的預期之前,請勿斷開活動的 ssh 連接。
一種。驗證您認為 sshd 應該做什麼
灣。使用“-t”驗證配置是否有效
C。啟動可以實時監控的伺服器的詳細“測試”版本
d。啟動一個詳細的“測試”客戶端連接,您可以實時監控
一種。驗證您認為 sshd 應該做什麼
查看 sshd 配置文件,不包含所有註釋,如下所示(假設 sshd_config 是正確的文件並且在 /etc/ssh 中)
$ grep -v “^#” /etc/ssh/sshd_config | grep -v “^ $ "
這只是清除問題,因此我們驗證我們認為我們正在更改的內容(不一定是否正確。)
灣。使用“-t”驗證配置是否有效
從我正在使用的 sshd 的手冊頁中,
-t 測試模式。只檢查配置文件的有效性和密鑰的完整性。這對於可靠地更新 sshd 很有用,因為配置選項可能會更改。
其他變化可能有更微妙的情況。例如,在您確定公鑰身份驗證正常工作之前,不要禁用密碼身份驗證。
C。啟動可以實時監控的伺服器的詳細“測試”版本
$ sudo /usr/sbin/sshd -ddd -p 9999
這使您現有的工作會話保持活動狀態,但為您提供另一個 sshd 實例來驗證您的新配置更改。SSHD 現在在前台執行到使用者定義的埠(在我們的範例中為 9999。)並推送大量嘈雜的調試資訊,您可以在 /var/log/authlog(或可能 /var/log/auth.log 中跟踪,具體取決於在您的作業系統上。)
d。啟動一個詳細的“測試”客戶端連接,您可以實時監控
以詳細模式執行 ssh 客戶端連接,以在螢幕上顯示更多資訊,這些資訊可能會引導您更好地調試錯誤。
$ ssh -vvv -p 9999 伺服器名
您現在應該在伺服器的日誌文件或客戶端的連接螢幕中有足夠的資訊來隔離您的問題。
解決方案通常歸結為文件權限(如 Magnar 和 setatakahashi 所示)
祝你好運