Почему SSH не использует мои авторизованные ключи?
У меня дома 2 ноутбука, на обоих работает Ubuntu 12.04 (Desktop), и оба используют один и тот же Wi-Fi-маршрутизатор NetGear. Я использовал метод под названием "MAC-привязка" на одной из машин, чтобы маршрутизатор всегда назначал ему один и тот же IP-адрес 192.168.1.52 при каждой попытке подключения к Интернету. (Не связано: привязка MAC-адреса означает только настройку маршрутизатора для постоянной привязки определенного MAC-адреса к определенному IP-адресу.)
Итак, теперь у меня есть 1 ноутбук, которому всегда назначается случайный IP-адрес в диапазоне от 192.168.1.1 до 192.168.1.50, и 1 ноутбук (мой "сервер сборки"), которому всегда назначается 192.168.1.52.
Я пытаюсь написать сценарий bash, который я буду запускать на "клиентском" ноутбуке (случайном IP-компьютере), который будет ssh
в сервер сборки (машина 192.169.1.52); отсюда необходимость для сервера сборки иметь "выделенный" IP из моей локальной сети. Я не хочу явно указывать пароль для этих скриптов bash, поэтому я следовал приведенным здесь инструкциям, чтобы сгенерировать ключи SSH. В частности, я:
- Генерация ключей SSH на моем клиентском ноутбуке (создание
id_rsa.pub
файл) - я
scp
сделалid_rsa.pub
файл на мой сервер сборки, иcat
сделал бы это в~/.ssh/authorized_keys
файл. Я проверил, что ключ SSH моего клиентского ноутбука теперь существует внутриauthorized_keys
файл на сервере сборки. - Я закрыл терминал на своем клиентском ноутбуке, а затем снова открыл новый, просто для хорошей меры (на случай, если Linux понадобится, чтобы что-то перезапустить и т. Д.)
- Затем я попытался подключиться по SSH к серверу сборки, и мне все еще предлагается ввести пароль!
Что тут происходит? Почему SSH на моем сервере сборки не поддерживает авторизованные ключи от моего клиентского ноутбука? Нужно ли что-нибудь перезагружать на сервере сборки (sshd
, так далее.)? Я пропустил какие-либо важные шаги здесь? Как начать устранение неполадок? Заранее спасибо!
Обновление: очевидно, Ubuntu не имеет /var/log/secure.log
, но есть /var/log/auth.log
, Когда я подключаю этот журнал на сервере сборки, а затем пытаюсь подключиться по SSH к серверу сборки с моего клиентского ноутбука, вот что происходит:
- я бегу
ssh myuser@buildserver
с клиентского ноутбука - Мне предлагается пароль.
- Как только я ввожу пароль, я вижу следующий вывод на сервере сборки
auth.log
файл:
May 21 12:02:07 buildserver sshd[28930]: error: RSA_public_decrypt failed: error:0407006A:lib(4):func(112):reason(106)
May 21 12:02:10 buildserver sshd[28930]: pam_sm_authenticate: Called
May 21 12:02:10 buildserver sshd[28930]: pam_sm_authenticate: username = [myuser]
May 21 12:02:10 buildserver sshd[28930]: pam_sm_authenticate: /home/myuser is already mounted
May 21 12:02:10 buildserver sshd[28930]: Accepted password for myuser from 192.168.1.3 port 39821 ssh2
May 21 12:02:10 buildserver sshd[28930]: pam_unix(sshd:session): session opened for user myuser by (uid=0)
May 21 12:02:10 buildserver sshd[29003]: Received disconnect from 192.168.1.3: 11: disconnected by user
May 21 12:02:10 buildserver sshd[28930]: pam_unix(sshd:session): session closed for user myuser
Что-то, что, возможно, я должен был упомянуть: на обоих компьютерах (клиентский ноутбук и мой сервер сборки, имя пользователя / имя учетной записи myuser
) - может ли Linux запутаться из-за одного и того же имени пользователя на обеих машинах?
3 ответа
Первый шаг: перезапустите SSH с /etc/init.d/sshd restart
, Также убедитесь, что права доступа к файлу Authorized_users указаны правильно. Для проверки используйте chmod 600 ~/.ssh/authorized_keys
и убедитесь, что он принадлежит пользователю, в который вы входите.
Для меня удаление id_rsa.pub помогло (я использовал ключ ~/.ssh/id_rsa). Это было вызвано тем, что id_rsa.pub не соответствовал моему ключу id_rsa.
В каком формате ваш открытый ключ?
Я нахожу много инструментов для генерации ключей, таких как это:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "1024-bit RSA, converted from OpenSSH by me@example.com"
AAAAB3NzaC1yc2EAAAABIwAAAIEA1on8gxCGJJWSRT4uOrR13mUaUk0hRf4RzxSZ1zRb
YYFw8pfGesIFoEuVth4HKyF8k1y4mRUnYHP1XNMNMJl1JcEArC2asV8sHf6zSPVffozZ
5TT4SfsUu/iKy9lUcCfXzwre4WWZSXXcPff+EHtWshahu3WzBdnGxm5Xoi89zcE=
---- END SSH2 PUBLIC KEY ----
И мой authorized_keys
Файл всегда содержал ключ как это:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA1on8gxCGJJWSRT4uOrR13mUaUk0hRf4RzxSZ1zRbYYFw8pfGesIFoEuVth4HKyF8k1y4mRUnYHP1XNMNMJl1JcEArC2asV8sHf6zSPVffozZ5TT4SfsUu/iKy9lUcCfXzwre4WWZSXXcPff+EHtWshahu3WzBdnGxm5Xoi89zcE=
(Открытый ключ объединен в одну строку)