我的筆記型電腦上有一個 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.log
show進行調試
User <account-name> not allowed because account is locked
帳戶被鎖定,因為我沒有設定任何密碼,因為我只想無密碼、基於金鑰的身份驗證。解決方案是
sudo passwd <account-name>
並分配一些隨機的複雜密碼。