Открытый ключ SSH - Поддерживаемые методы аутентификации недоступны (открытый ключ, отправленный сервером)

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

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

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

  1. Сгенерировал ключи с помощью PuTTYgen.
  2. Переместил открытый ключ в /etc/ssh/myusername/authorized_keys (Я использую зашифрованные домашние каталоги).
  3. Устанавливать sshd_config вот так:

    PubkeyAuthentication yesAuthorizedKeysFile /etc/ssh/%u/authorized_keysStrictModes noPasswordAuthentication noUsePAM 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-1023Checking blacklist file /etc/ssh/blacklist.RSA-1023temporarily_use_uid: 1000/1000 (e=0/0)trying public key file /etc/ssh/username/authorized_keysfd4 clearing O_NONBLOCKrestore_uid: 0/0Failed publickey for username from 192.168.1.7 port 14343 ssh2Received disconnect from 192.168.1.7: 14: No supported authentication methods available [preauth]do_cleanup [preauth]monitor_read_log: child log fd closeddo_cleanupPAM: cleanup

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

Проблема решена:

Похоже, возникла проблема с моим файлом открытого ключа. PuTTYgen создаст файл открытого ключа, который выглядит следующим образом:

---- BEGIN SSH2 PUBLIC KEY ----Comment: "rsa-key-20121022"AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8=---- END SSH2 PUBLIC KEY ----

Однако это не сработает, поэтому вам нужно открыть ключ в PuTTYgen, а затем скопировать его оттуда (в результате ключ будет в правильном формате и в 1 строке):

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8= rsa-key-20121022

Вставьте это в authorized_keys тогда это должно сработать.

  1. Редактировать /etc/ssh/sshd_config файл.
  2. Изменить PasswordAuthentication и ChallengeResponseAuthentication к yes.

3a. Перезапустите ssh /etc/init.d/ssh restart.
операционная
3b. лучше вам использовать service sshd restart

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

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

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

Ты закончишь с этим:

echo ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8= rsa-key-20121022 > /etc/ssh/username/authorized_keys

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

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

Надеюсь, это кому-нибудь поможет.

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

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

ssh очень привередлив в отношении завивки файлов.

решенный:

  1. Вам нужно загрузить PuTTYgen и сгенерировать открытый и закрытый ключи.
  2. Я присвоил пароль своему личному ключу.
  3. >>>затем настройте закрытый ключ в putty. Putty-SSH-Auth-Перейдите в свой личный кабинет.
  4. Убедитесь, что у вас один и тот же путь для закрытого и открытого ключей.
  5. Вам необходимо настроить открытый ключ на сервере. (В моем случае я поговорил с администратором сервера и спросил, может ли он добавить мой открытый ключ на сервер). Вам нужен открытый ключ на другой стороне (сервере) соединения.

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

В моем случае у меня есть два экземпляра AWS. Один из них работает безупречно, другой работает при подключении через Intellij Idea, но не из Putty, но он работал в начале. Так что в моем случае это должно быть что-то связанное с замазкой