Открытый ключ SSH. Нет доступных методов проверки подлинности (серверный открытый ключ)

У меня есть настройка сервера 12.10 на виртуальной машине с ее сетью, установленной на мост (по существу будет рассматриваться как компьютер, подключенный к моему коммутатору).

Я установил opensshd через apt-get и смог для подключения к серверу с помощью шпатлевки с моим именем пользователя и паролем.

Затем я попытался заставить его использовать аутентификацию с открытым / закрытым ключом. Я сделал следующее:

Сгенерировал ключи с помощью PuttyGen. Переместил открытый ключ в /etc/ssh/myusername/authorized_keys (я использую зашифрованные домашние каталоги). Настройте sshd_config следующим образом:
PubkeyAuthentication yes
AuthorizedKeysFile /etc/ssh/%u/authorized_keys
StrictModes no
PasswordAuthentication no
UsePAM yes

Когда я подключаюсь с помощью putty или WinSCP, я получаю сообщение об ошибке «Нет поддерживаемых методов проверки подлинности» (сервер отправил открытый ключ).

Если я запустил sshd в режиме отладки, я вижу:

PAM: initializing for "username"
PAM: setting PAM_RHOST to "192.168.1.7"
PAM: setting PAM_TTY to "ssh"
userauth-request for user username service ssh-connection method publickey [preauth]
attempt 1 failures 0 [preauth]
test whether pkalg/pkblob are acceptable [preauth[
Checking blacklist file /usr/share/ssh/blacklist.RSA-1023
Checking blacklist file /etc/ssh/blacklist.RSA-1023
temporarily_use_uid: 1000/1000 (e=0/0)
trying public key file /etc/ssh/username/authorized_keys
fd4 clearing O_NONBLOCK
restore_uid: 0/0
Failed publickey for username from 192.168.1.7 port 14343 ssh2
Received disconnect from 192.168.1.7: 14: No supported authentication methods available [preauth]
do_cleanup [preauth]
monitor_read_log: child log fd closed
do_cleanup
PAM: cleanup

Почему это происходит и как я могу это исправить?

1
задан 20 August 2015 в 14:17

5 ответов

Просто подсказка, я надеюсь, поможет кому-то еще с головными болями, которые у меня были. F21 прав, что вам нужно скопировать ключ из окна PuTTYGen вместо сохранения файла, но после копирования способ вставки может оказать существенное влияние на то, будет ли ваш ключ работать или нет. Некоторые редакторы будут изменять текст при вставке или делать что-то с символами новой строки или что-то, что делает файл authorized_keys недействительным.

То, что я нашел наименее вероятным, - это повторить полную строку и перенаправить вывод в файл. Щелкните правой кнопкой мыши в PuTTY, чтобы вставить ключевую строку в командную строку, она работает так (с приведенным выше примером):

echo [right-click-to-paste-here] > /etc/ssh/username/authorized_keys

В итоге вы получите следующее:

[ f2]

Другим преимуществом этого метода является то, что вы можете добавить несколько ключей таким образом, используя >> для добавления вместо> для перезаписывания, например:

echo ssh-rsa AAAAB3<...snip...>rJe8= rsa-key-20121022 >> /etc/ssh/username

Надежда, которая помогает кому-то.

8
ответ дан 25 May 2018 в 05:15
  • 1
    Это не работает для 4096 бит ключей ... это превышает предельное значение для символов, которые я думаю – Freedo 18 July 2015 в 11:04
  • 2
    Может быть, это может быть хорошей идеей, чтобы удалить это из истории вашего bash. – Jason Powers Murray 11 November 2017 в 12:00

Мы уже использовали правильный тип ключа (ppk вместо pem) ..

В нашем случае это была проблема с правами доступа к файлам authorized_keys в папке пользователя сервера. Это должно быть -rw-r-r-- ... Это было -rw-rw-r--

ssh очень тонко о файлах perms.

4
ответ дан 25 May 2018 в 05:15
  • 1
    Спасибо, что указал мне в правильном направлении. В нашем случае как владелец, так и разрешения были неправильными. – Zsolti 6 October 2016 в 14:16
  • 2
    как изменить права доступа к файлам, поскольку мы не можем получить доступ через ssh? любой другой способ сделать это? – jit 28 November 2016 в 15:52

В моем случае причина заключалась в том, что файл закрытого ключа (.ppk) был удален в агент аутентификации Putty, т. е. Pageant. Я только что обновил его снова до «Pageant», и после этого соединение отлично сработало.

3
ответ дан 25 May 2018 в 05:15
Отредактируйте файл / etc / ssh / sshd_config. Смените PasswordAuthentication и ChallengeResponseAuthentication на yes. Перезапустите перезапуск ssh /etc/init.d/ssh.
3
ответ дан 25 May 2018 в 05:15
  • 1
    действительно, это полезный комментарий, если у вас возникли проблемы с подключением программного обеспечения vie ftp – cnu 12 July 2017 в 11:11
  • 2
    Это подходит для меня! – Asinox 8 October 2017 в 05:07
  • 3
    Вся цель аутентификации через ключевой файл заключается в избегать аутентификации пароля, поэтому на самом деле вы должны установить PasswordAuthentication на no. – Pere 20 December 2017 в 16:43

SOLVED:

Вам нужно загрузить puttyGEN и создать публичный и закрытый ключ. Я назначил пароль для своего личного ключа. затем настройте закрытый ключ в putty. Putty-> SSH-> Auth-> Посмотрите на свой личный. Убедитесь, что у вас есть один и тот же путь для частного и открытого ключа. Вам нужно настроить открытый ключ на сервере. (В моем случае я поговорил с парнем сервера и спросил, может ли он добавить свой открытый ключ на сервер). Вам нужен открытый ключ на другой стороне (сервере) для подключения.
2
ответ дан 25 May 2018 в 05:15
  • 1
    «Убедитесь, что у вас есть один и тот же путь для частного и открытого ключа. " Это не имеет никакого отношения к этому. Вам не нужно размещать свой открытый ключ рядом с вашим личным .. – user3790897 6 December 2017 в 13:53

Другие вопросы по тегам:

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