В моей установке существует три файла:
id_rsa
id_rsa.pub
authorized_keys
authorized_keys
имеет копию id_rsa.pub
содержание для разрешения логинов без паролей.
Эти файлы были скопированы между двумя компьютерами. Если я ssh от computer1 до computer2, это работает. Если я ssh от coputer2 до computer1, это запрашивает пароль. Может кто-то говорить мне, почему это могло бы произойти.
Кроме того, обе системы запускают Ubuntu 10.04. Я переустановил пакеты openssh-сервера в обеих системах. Полномочия файлов являются тем же./etc/ssh sshd_config
и ssh_config
файлы являются тем же. Я работал с -v -v -v
и единственная разница между этими двумя сессиями, то, что каждый говорит, что 'ключ был принят сервером', другой только продолжается к подсказке пароля.
Таким образом, что еще оставляют проверить?
Можно было произвести серверную отладку путем остановки сервера и выполнения его из командной строки:
sudo /usr/sbin/sshd -Dd
Это дало мне следующий вывод после попытки войти в систему от моего другого компьютера:
...
Authentication refused: bad ownership or modes for directory /home/user
...
Проверка моего каталога:
ls -l /home/user
drwxrwxr-x 142 user user 7.7K 06-19 15:45 /home/user/
Корректные полномочия должны быть:
chmod 750 /home/user
После того, как я сделал это, это теперь работает.
Вы добавляли цифровой отпечаток от computer1 до .ssh/authorized_keys
на computer2?
Кроме того, Вы не должны использовать тот же закрытый ключ среди многих полей, как он слабеет, безопасность должна одно поле взламываться. Лично я использую один ключ на клиент на сервер.
Одной вещью проверить в дополнение к ответу Daenyth является принадлежность файла и полномочия в Вашем ~/.ssh каталог на обоих компьютерах.
Удостоверьтесь, что Вы установлены как пользователь для всех файлов в том каталоге: chown *USERNAME*: ~/.ssh/*
Кроме того, проверьте, что полномочия таковы, что файлы читаемы и перезаписываемы Вашим пользователем, но не доступны группой или другим: chmod 600 ~/.ssh/*