У меня есть сервер 12.10, настроенный на виртуальной машине с подключенной сетью (по сути, он будет рассматриваться как компьютер, подключенный к моему коммутатору).
Я установил opensshd через apt-get и смог подключиться к серверу с помощью putty с моим именем пользователя и паролем.
Затем я попытался заставить его использовать аутентификацию с открытым / закрытым ключом. Я сделал следующее:
Сгенерировал ключи с помощью PuTTYgen.
Переместил открытый ключ в /etc/ssh/myusername/authorized_keys (Я использую зашифрованные домашние каталоги).
Когда я подключаюсь с помощью 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 строке):
Просто совет, который, я надеюсь, поможет кому-то еще справиться с моими головными болями. F21 прав в том, что вам нужно скопировать ключ из окна PuTTYgen вместо сохранения файла, но после копирования способ вставки может оказать существенное влияние на то, будет ли ваш ключ работать или нет. Некоторые редакторы изменяют текст при вставке, или делают что-то с новыми строками, или что-то такое, что делает файл authorized_keys недействительным.
То, что я счел наименее вероятным для взлома, - это повторить полную строку и перенаправить вывод в файл. Щелчок правой кнопкой мыши в PuTTY, чтобы вставить строку ключа в командную строку, работает следующим образом (с приведенным выше примером):
>>>Еще одним преимуществом этого метода является то, что вы можете добавить несколько ключей таким образом, используя для добавления вместо перезаписи, например:
Мы уже использовали правильный тип ключа (ppk вместо pem)..
В нашем случае это была проблема с правами доступа к файлам для authorized_keys в папке пользователя сервера. Это должно быть - р-р-р-р- ... Это было - р-р-р-р--
Вам нужно загрузить PuTTYgen и сгенерировать открытый и закрытый ключи.
Я присвоил пароль своему личному ключу.
>>>затем настройте закрытый ключ в putty. Putty-SSH-Auth-Перейдите в свой личный кабинет.
Убедитесь, что у вас один и тот же путь для закрытого и открытого ключей.
Вам необходимо настроить открытый ключ на сервере. (В моем случае я поговорил с администратором сервера и спросил, может ли он добавить мой открытый ключ на сервер). Вам нужен открытый ключ на другой стороне (сервере) соединения.
В моем случае причина заключалась в том, что файл закрытого ключа (.ppk) был удален в Putty authentication agent, т.е. Pageant. Я просто обновил его снова до Pageant там, и после этого соединение работало отлично.
В моем случае у меня есть два экземпляра AWS. Один из них работает безупречно, другой работает при подключении через Intellij Idea, но не из Putty, но он работал в начале. Так что в моем случае это должно быть что-то связанное с замазкой