SSH все еще просит пароль даже после добавления ключа к authorized_keys

4
задан 30 June 2012 в 02:45
4 ответа

~ / .ssh должен быть chmod 700 и ~ / .ssh / authorized_keys должен быть chmod 600 . Оба должны принадлежать вам.

SSH будет автоматически возвращаться к входу по паролю, если эти файлы / каталоги более разрешены, хотя по памяти он регистрирует что-то о «плохом режиме».

Также проверьте, что ~ / .ssh / authorized_keys на самом деле что-то содержит. У меня такое ощущение, что команда могла создать пустой файл. Я думаю, вам нужен следующий:

cat ~/.ssh/id_rsa.pub | ssh root@remotehost.com -p 1234 "cat - > ~/.ssh/authorized_keys"
9
ответ дан 3 December 2019 в 02:23

Как заметил Лададада, у вас есть:

cat ~ / .ssh / id_rsa | ssh root@remotehost.com -p 1234 "кошка> ~ / .ssh / authorized_keys "

Это копирование вашей пары закрытого / открытого ключей в файл authorized_keys. Ваш файл authorized_keys на сервере не должен иметь закрытого ключа. Я бы предложил следующее:

  • Удалить authorized_keys файл в удаленной системе полностью.
  • Временно измените права доступа на .ssh, чтобы сделать его доступным для записи, если это еще не было сделано.
  • В вашей локальной системе перейдите в каталог .ssh и убедитесь, что у вас есть id_rsa и файл id_rsa.pub. команда ssh-keygen должна была создать для вас оба файла
  • Выполните команду, предоставленную Ladadadada:

cat ~ / .ssh / id_rsa.pub | ssh root@remotehost.com -p 1234 " кошка -> ~ / .ssh / authorized_keys "

Примечание: это должно записать ваш открытый ключ в файл authorized_keys. Дважды проверьте, чтобы ваша локальная копия id_rsa.pub соответствовала ключу в файле authorized_keys.

Содержимое вашего Ключ id_rsa.pub будет выглядеть примерно так (вырезана часть для краткости):

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLrS9t0lEdxk52v8Jt / EJMNm9 :::: обрезано ::::: wu1WzNCvrkUDnqS / aQZJ4rR4J + GoMLxP2NT you @ somehostname

Этот ключ, id_rsa.pub, должен соответствовать ключу ssh в файле known_hosts.

отредактировано: исправлена ​​ошибка в имени файла. Я поддержал ответ Ладададады, потому что он уловил проблему, но я не думаю, что она была подхвачена OP

6
ответ дан 3 December 2019 в 02:23

Судя по выводам, я думаю, вам нужно проверить формат вашего ключа. Если вы не уверены, посетите эти сайты:

http://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter8.html

http://www.ietf.org/rfc/ rfc4716.txt

0
ответ дан 3 December 2019 в 02:23

TL; DR

На стороне клиента:

  • открыто файл конфигурации / etc / ssh / ssh_config ;
  • здесь найдите PreferredAuthentication ;
  • убедитесь, что пароль идет после publickey а не наоборот

В моем случае пароль был написан до publickey , поэтому ssh запрашивал пароль, даже если я скопировал свой pub_key на сервер.

Эту проблему легко решить, используя подробное описание:

ssh -v compute @ compute1 ... ... debug1: аутентификация, которая может продолжаться: открытый ключ, пароль debug1: Следующий метод аутентификации: пароль

Как видите пароль выбран перед попыткой использования открытого ключа.

Отредактируйте / etc / ssh / ssh_config , переместив пароль после publickey

PreferredAuthentication интерактивная клавиатура, открытый ключ, пароль , на основе хоста, gssapi-with-mi

Теперь вы можете войти в систему без запроса pwd.

0
ответ дан 18 April 2020 в 09:18

Теги

Похожие вопросы