為什麼使用相同金鑰對的 ssh 登入對同一台電腦上的一個帳戶有效,但對另一個帳戶無效?

為什麼使用相同金鑰對的 ssh 登入對同一台電腦上的一個帳戶有效,但對另一個帳戶無效?

我的筆記型電腦上有一個 RSA 公鑰/私鑰對;在遠端電腦上,我有兩個帳戶 A 和 B,每個帳戶都有 /home/{A,B}/.ssh/authorized_keys 中的公鑰。將私鑰載入到我的筆記型電腦上的 ssh-agent 後,我可以在沒有密碼的情況下 ssh 到 A@remote,但 B@remote 會提示輸入密碼。

我的筆記型電腦上沒有 ~/.ssh/ssh_config 。用戶A還沒有密碼; B 確實如此。將 /etc/ssh/ssdh_config 切換為「PasswordAuthentication no」只會導致使用者 B 的「ssh publickey被拒絕」。

伺服器運行在 Ubuntu 9.10 Karmic 上,帶有 OpenSSH_5.1p1 Debian-6ubuntu2,OpenSSL 0.9.8g 2007 年 10 月 19 日。

答案1

事實證明,損壞的用戶的 $HOME/.ssh 資料夾為群組啟用了「寫入」權限。chmod go-rwx $HOME/.ssh解決了這個問題。

答案2

就我而言,除了檔案權限.ssh/authorized_keys(s.answer by @tobym)之外,問題原因還在於帳戶被鎖定。

在伺服器上用sudo tail -f /var/log/auth.logshow進行調試

User <account-name> not allowed because account is locked

帳戶被鎖定,因為我沒有設定任何密碼,因為我只想無密碼、基於金鑰的身份驗證。解決方案是

sudo passwd <account-name>

並分配一些隨機的複雜密碼。

相關內容