У меня есть настройка сервера 12.10 на виртуальной машине с установленным мостом в сети (по сути, это будет компьютер, подключенный к моему коммутатору).
Я установил opensshd через apt-get
и смог соединиться с сервером, используя putty с моим именем пользователя и паролем.
Затем я попытался заставить его использовать аутентификацию с открытым / закрытым ключом. Я сделал следующее:
- Сгенерировал ключи с помощью 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
Почему это происходит и как я могу это исправить?
Ответы:
Задача решена:
Похоже, была проблема с моим файлом открытого ключа. PuttyGen создаст файл открытого ключа, который выглядит следующим образом:
Однако это не сработает, поэтому вам нужно открыть ключ в PuttyGen, а затем скопировать его оттуда (в результате ключ будет в правильном формате и в 1 строке):
Вставьте это в
authorized_keys
то, что должно работать.источник
authorized_keys
в vi и удалил все разрывы строк, и это сработало./etc/ssh/sshd_config
файл.PasswordAuthentication
иChallengeResponseAuthentication
наyes
.3a. Перезапустите SSH
/etc/init.d/ssh restart
.ИЛИ
3б. лучше вы используете
service sshd restart
источник
PasswordAuthentication
значениеno
.ChallengeResponseAuthentication
, это решило проблему для меня на Debian 10.0Надеюсь, это просто подсказка, которая может помочь кому-то еще с головными болями, которые у меня были F21 прав, что вам нужно скопировать ключ из окна PuTTYGen вместо сохранения файла, но после копирования способ вставки может оказать существенное влияние на то, будет ли работать ваш ключ или нет. Некоторые редакторы изменяют текст по мере вставки или делают что-то с символами новой строки или что-то, что делает файл author_keys недействительным.
То, что я нашел наименее вероятным, это сломать всю строку и перенаправить вывод в файл. Щелкните правой кнопкой мыши в PuTTY, чтобы вставить строку ключа в командную строку, это работает так (с примером, приведенным выше):
Вы закончите с этим:
Еще одним преимуществом этого метода является то, что вы можете добавить несколько ключей таким образом, используя >> для добавления вместо> для перезаписи, например:
Надеюсь, что это помогает кому-то.
источник
Мы уже использовали правильный тип ключа (ppk вместо pem) ..
В нашем случае это была проблема с разрешениями для файла authorized_keys в пользовательской папке сервера. Это должно быть -rw-r - r-- ... Это было -rw-rw-r--
ssh очень привередлив в отношении файловых перми.
источник
РЕШИТЬ:
источник
В моем случае причина была в том, что файл закрытого ключа (.ppk) был удален в агенте аутентификации Putty, т.е. Pageant. Я просто обновил его снова до Pageant там, и после этого соединение работало отлично.
источник