Хорошо, я знаю основы настройки ssh без пароля: создайте пару ключей с помощью ssh-keygen, затем добавьте открытый ключ из id_dsa.pub в .ssh / authorized_keys хоста. Таким образом, для двух разных машин, клиента и хоста, я могу ssh с клиента на хост без ввода пароля. До сих пор хорошо.
Но у меня есть программное обеспечение, которое требует, чтобы клиент мог подключиться к ssh. сам без пароля. Наивно, я делаю то же самое: просто копирую .ssh / id_dsa.pub в .ssh / authorized_keys в том же каталоге. Но не работает. Если я напечатаю
пользователь @ клиент: ~ $ ssh клиент
тогда он по-прежнему запрашивает мой пароль, даже если открытый ключ клиента находится в его собственном файле authorized_keys.
Я что-то упускаю?
Использовать ssh-copy-id user@client
и он скопирует правильные данные в нужное место. Однако, если это тот же пользователь, что и вы, это может быть проблематично, так как может перезаписать что-то важное. Сделайте копию своего .ssh
каталог перед попыткой.
РЕДАКТИРОВАТЬ: Как ни странно, пробовал добавить свой id_rsa.pub
к моему .ssh/authorized_keys
и это сработало. Вы уверены, что ваш местный sshd
настроен на принятие аутентификации с общим ключом?
Если я не ошибаюсь, параметры по умолчанию (и расположение закрытых ключей по умолчанию) регулируются файлом / etc / ssh / ssh_config.
Однако опция команды ssh позволяет вам также указать местоположение закрытого ключа, который будет использоваться.
Другая проблема, имеющая аналогичный симптом, - это невозможность добавить localhost в /etc/hosts.allow, управляющий файл для TCP-оболочек. Вы можете временно переименовать /etc/hosts.deny, чтобы определить, является ли он источником вашей проблемы.