Почему вход по 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" приводит только к "ssh publickey denied" для пользователя B.

Сервер работает на Ubuntu 9.10 Karmic с OpenSSH_5.1p1 Debian-6ubuntu2, OpenSSL 0.9.8g 19 октября 2007 г. На ноутбуке установлена ​​Ubuntu 10.04 с OpenSSH_5.3p1.

решение1

Оказалось, что папка $HOME/.ssh сломанного пользователя имела разрешение «запись» для группы. chmod go-rwx $HOME/.sshИсправлена ​​проблема.

решение2

В моем случае, помимо прав доступа к файлу .ssh/authorized_keys(см. ответ @tobym), причиной проблемы была заблокированная учетная запись.

Отладка на сервере с помощью sudo tail -f /var/log/auth.logshow

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

Аккаунт был заблокирован, потому что я не установил пароль, так как я хотел просто беспарольную аутентификацию на основе ключа. Решение было

sudo passwd <account-name>

и назначьте какой-нибудь случайный сложный пароль.

Связанный контент