同じキーペアを使用した SSH ログインが、同じマシン上の 1 つのアカウントでは機能するのに、他のアカウントでは機能しないのはなぜですか?

同じキーペアを使用した SSH ログインが、同じマシン上の 1 つのアカウントでは機能するのに、他のアカウントでは機能しないのはなぜですか?

私のラップトップには RSA 公開/秘密キーのペアがあり、リモート マシンには 2 つのアカウント A と B があり、それぞれの公開キーは /home/{A,B}/.ssh/authorized_keys にあります。ラップトップの ssh-agent に秘密キーがロードされているので、パスワードなしで A@remote に ssh できますが、B@remote ではパスワードの入力を求められます。

私のラップトップには ~/.ssh/ssh_config がありません。ユーザー A にはまだパスワードがありませんが、ユーザー B にはあります。/etc/ssh/ssdh_config を「PasswordAuthentication no」に切り替えると、ユーザー B に対して「ssh publickey denied」という結果になります。

サーバーは、Ubuntu 9.10 Karmic、OpenSSH_5.1p1 Debian-6ubuntu2、OpenSSL 0.9.8g (2007 年 10 月 19 日) です。ラップトップは、Ubuntu 10.04、OpenSSH_5.3p1 です。

答え1

壊れたユーザーの $HOME/.ssh フォルダーで、グループに対して「書き込み」権限が有効になっていることが判明しました。chmod go-rwx $HOME/.ssh問題は修正されました。

答え2

私の場合、ファイルへの権限(s. 回答 by @tobym)に加えて.ssh/authorized_keys、問題の原因はアカウントがロックされていたことです。

sudo tail -f /var/log/auth.log表示されたサーバー上でデバッグ

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

パスワードを設定しなかったのでアカウントがロックされました。パスワードなしのキーベースの認証だけを望んでいたからです。解決策は

sudo passwd <account-name>

ランダムな複雑なパスワードを割り当てます。

関連情報