У меня есть настройка сервера 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
Почему это происходит и как я могу это исправить?
Просто подсказка, я надеюсь, поможет кому-то еще с головными болями, которые у меня были. 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
Надежда, которая помогает кому-то.
Мы уже использовали правильный тип ключа (ppk вместо pem) ..
В нашем случае это была проблема с правами доступа к файлам authorized_keys в папке пользователя сервера. Это должно быть -rw-r-r-- ... Это было -rw-rw-r--
ssh очень тонко о файлах perms.
В моем случае причина заключалась в том, что файл закрытого ключа (.ppk) был удален в агент аутентификации Putty, т. е. Pageant. Я только что обновил его снова до «Pageant», и после этого соединение отлично сработало.
SOLVED:
Вам нужно загрузить puttyGEN и создать публичный и закрытый ключ. Я назначил пароль для своего личного ключа. затем настройте закрытый ключ в putty. Putty-> SSH-> Auth-> Посмотрите на свой личный. Убедитесь, что у вас есть один и тот же путь для частного и открытого ключа. Вам нужно настроить открытый ключ на сервере. (В моем случае я поговорил с парнем сервера и спросил, может ли он добавить свой открытый ключ на сервер). Вам нужен открытый ключ на другой стороне (сервере) для подключения.