У меня есть два сервера, на которых запущен RHEL 5. Оба имеют почти идентичные конфигурации. Я настроил аутентификацию RSA Publickey на обоих, и один работает, а другой нет:
[my_user@client] $ ssh my_user@server1
--- server1 MOTD Banner ---
[my_user@server1] $
и на другом сервере:
[my_user@client] $ ssh my_user@server2
my_user@server2's password:
--- server2 MOTD Banner ---
[my_user@server2] $
Фрагмент файла / etc / ssh / sshd_config server2:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Когда я бегу ssh -vvv
Получаю следующий фрагмент:
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug3: Next authentication method: publickey
debug1: Offering public key: /home/my_user/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentication that can continue: publickey,gssapi-with-mic,passowrd
debug1: Offering public key: /home/my_user/.ssh/id_dsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentication that can continue: publickey,gssapi-with-mic,passowrd
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
my_user@server2's password:
РЕДАКТИРОВАТЬ: как серверы, так и клиентские .ssh
каталоги имеют 700 разрешений, а все файлы внутри имеют 644 или 600 разрешений.
Вы проверили разрешение файловой системы на обеих машинах? sshd немного требователен к разрешениям на папку .ssh и файлы в этой папке.
.ssh должно иметь 700, а файлы - 644 или меньше.
Поскольку очевидные ответы были даны точно, некоторые другие варианты отладки:
выполнить различие между .ssh / authorized_keys на server1 и server2
Запустите демон sshd на переднем плане с ведением журнала, и он должен объяснить, почему он отклонил ключ аутентификации.
Это решение будет простым, если вы не изменили sshd_config между серверами. Вы можете запустить diff
против них конечно.
Как сказал Кристиан, наиболее вероятной причиной обычно являются разрешения.
Если разрешения верны, на одном из серверов будет несоответствие между частной и открытой парами ключей.
Кристиан и Уорнер были на правильном пути, это была ошибка прав доступа, но это была b / c домашнего каталога, а не каталога .ssh:
$# tail --f=n /var/log/secure
Mar 22 10:52:57 my_server2 sshd[6278]: Authentication refused: bad ownership or modes for directory /home/my_user
$# ls -la /home/my_user
drwxrwx--- 21 my_user my_user 4096 Mar 22 10:37 .
...
После chmod
При переходе в каталог на 755 логин работал правильно.