1

Я пытаюсь настроить логин без пароля для SSH, чтобы создавать скрипты для некоторых автоматических тестов в моей системе.

Мне нужно настроить это для двух разных машин, поэтому с машины "A" мне нужно использовать логин без пароля для машин "B" и "C".

Я запустил следующее, которое работает для машины "B", но не для машины "C".

me@A# ssh-keygen
... [ follow the instructions just pressing Enter ]
me@A# ssh-copy-id -i ~/.ssh/id_rsa.pub root@B
... [ enter password when requested, etc.]
me@A# ssh root@B
Last Login XXX from YYY
root@B#

Так что это прекрасно работает для машины "B". Если я буду следовать той же самой процедуре для машины "C", то она не будет работать.

Обе машины являются Scientific Linux 6.4, обновлены, и я запустил "telnet B 22" и "telnet C 22", чтобы определить, какая версия SSH работает на каждой машине ("SSH-2.0-OpenSSH_5.3"), Я разложил файлы /etc /ssh /sshd_config на компьютерах B и C. Они идентичны.

Я пытался начать с машины "C", я тщательно очищал каталог ".ssh" на всех трех машинах каждый раз, когда начинаю новый тест, но каждый раз получаю один и тот же результат. "B" работает, "C" - нет, он все еще запрашивает пароль (но затем, по крайней мере, впустите меня)

Я ищу конкретные тесты, чтобы попытаться выяснить, в чем разница между этими двумя машинами, которая сделает эту работу для одной машины, а не для другой. Они даже в одинаковых коробках. Один имеет 1 ГБ памяти, один имеет 4 ГБ. Это единственная физическая разница.

2 ответа2

2

Проверьте разрешения для каталога .ssh на удаленном компьютере и файла author_keys в этом каталоге. Они должны быть доступны для чтения только пользователю, которого вы используете в ssh, поэтому у «.ssh» должны быть права 0700 и "author_keys" 0600, и они должны иметь правильное владение.

Вы также можете использовать аргумент "-vvv" в вашей команде ssh, чтобы увидеть, предлагается ли правильный ключ в качестве части аутентификации и где процесс останавливается и возвращается к паролю.

0

На машине C вы можете попытаться остановить службу sshd и запустить демон ssh в режиме отладки. Вы можете сделать это, войдя в систему через SSH, просто убедитесь, что у вас есть дополнительный сеанс для перезапуска службы sshd. Вы можете запустить sshd в режиме отладки с помощью:

$ service sshd stop
$ /usr/sbin/sshd -d

Затем попробуйте войти на сервер, и выходные данные отладки, скорее всего, скажут вам, в чем проблема. Не забудьте снова включить службу sshd, когда закончите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .