Вопрос или проблема
Я управляю сервером с Debian Linux 3.2.46-1+deb7u1 и OpenSSH Server 6.0, и защитил вход с помощью RSA-ключа размером 2048 бит.
Хотя подключение с использованием OpenSSH Client с другой машины проходит успешно, подключение отклоняется при использовании Putty 0.63 на машине с Windows 7 с следующим сообщением:
Сервер отклонил подпись открытого ключа, несмотря на прием ключа!
Поскольку проблема касается только Putty, я думаю, что вся конфигурация сервера правильная. Putty работает нормально, когда сервер работает на Debian 2.6.32 и OpenSSH 5.5.
Вот содержимое auth.log:
соответствующий ключ найден: файл /root/.ssh/authorized_keys, строка 2
8 окт 14:53:43 serverx sshd[28964]: Найден соответствующий RSA-ключ: XX:XX
8 окт 14:53:43 serverx sshd[28964]: debug1: restore_uid: 0/0
8 окт 14:53:43 serverx sshd[28964]: debug3: mm_answer_keyallowed: ключ 0x7fb3828774c0 разрешен
8 окт 14:53:43 serverx sshd[28964]: debug3: mm_request_send entering: type 22
8 окт 14:53:43 serverx sshd[28964]: debug3: mm_key_verify entering [preauth]
8 окт 14:53:43 serverx sshd[28964]: debug3: mm_request_send entering: type 23 [preauth]
8 окт 14:53:43 serverx sshd[28964]: debug3: mm_key_verify: ожидание MONITOR_ANS_KEYVERIFY [preauth]
8 окт 14:53:43 serverx sshd[28964]: debug3: mm_request_receive_expect entering: type 24 [preauth]
8 окт 14:53:43 serverx sshd[28964]: debug3: mm_request_receive entering [preauth]
8 окт 14:53:43 serverx sshd[28964]: debug3: mm_request_receive entering
8 окт 14:53:43 serverx sshd[28964]: debug3: monitor_read: проверка запроса 23
8 окт 14:53:43 serverx sshd[28964]: ошибка: несоответствие хешей
8 окт 14:53:43 serverx sshd[28964]: debug1: ssh_rsa_verify: подпись неверна
8 окт 14:53:43 serverx sshd[28964]: debug3: mm_answer_keyverify: ключ 0x7fb382871f80 подпись не проверена
8 окт 14:53:43 serverx sshd[28964]: debug3: mm_request_send entering: type 24
После этого сервер переходит на аутентификацию по паролю, и я могу успешно зайти.
Я уже попытался очистить известные хосты Putty из реестра Windows, в то время как я думаю, что ошибка связана с открытым ключом для закрытого, а не с хост-ключом сервера.
Мой вопрос: Есть ли кто-то, кто знает, что может быть не так или что изменилось в OpenSSH с 5.5 до 6.0, что могло бы вызвать это? Есть ли предложения по исправлению?
Я видел это с Pageant и FileZilla, проблема исчезла после обновления Pageant.
Ответ или решение
Проблема, с которой вы столкнулись при использовании PuTTY 0.63 для подключения к серверу OpenSSH 6.0, связана с несовместимостью между клиентом и сервером в части обработки ключей RSA. Ошибка "Server refused public-key signature despite accepting key!" указывает на то, что сервер принимает ваш ключ, но не может правильно его обработать из-за различных версий и реализаций протокола.
Вот шаги, которые вы можете предпринять для решения данной проблемы:
-
Убедитесь в правильности генерации ключа: Проверьте, что ваш RSA ключ был правильно сгенерирован и что вы используете соответствующий приватный ключ в PuTTY. Если приватный ключ был создан с использованием OpenSSH, то вам, возможно, потребуется конвертировать его в формат, совместимый с PuTTY, используя утилиту
PuTTYgen
. ОткройтеPuTTYgen
, загрузите ваш приватный ключ в формате OpenSSH и сохраните его в формате PuTTY (PPS или PPK). -
Обновление PuTTY и его компонентов: Выполните обновление PuTTY до последней версии, так как версия 0.63 может работать некорректно с OpenSSH 6.0. Это может решить проблему с несовместимостью общения клиента и сервера. Также убедитесь, что вы используете последнюю версию Pageant, если его используете.
-
Проверка конфигурации SSH сервера:
- Откройте файл конфигурации SSH на сервере (обычно
/etc/ssh/sshd_config
). - Убедитесь, что параметры
PubkeyAuthentication
иAuthorizedKeysFile
установлены и не закомментированы. Например:PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
- Попробуйте также добавить опцию
HostKeyAlgorithms
и укажите более старые алгоритмы, если это возможно, для обеспечения обратной совместимости.
- Откройте файл конфигурации SSH на сервере (обычно
-
Логи сервера SSH: Вы уже привели фрагмент логов, где упоминается
error: hash mismatch
иssh_rsa_verify: signature incorrect
. Это может подтверждать, что есть несоответствие в обработке подписей. Проверьте, нет ли в логах дополнительных сообщений, которые могут указать на более специфичную причину проблемы. -
Отладка с помощью
-vvv
: При установленном OpenSSH-клиенте можно использовать опцию-vvv
для включения отладочного вывода. Это даст больше информации о том, что происходит при попытке аутентификации. -
Проверка на других системах: Если возможно, протестируйте подключение с помощью других SSH-клиентов для Windows, таких как MobaXterm или Bitvise SSH Client, чтобы определить, является ли проблема эксклюзивной для PuTTY.
-
Переход на более новый дистрибутив: Если проблема затруднительна в решении и если это возможно, подумайте о переходе на более новую версию Debian и OpenSSH, поскольку вы используете довольно устаревшую версию.
После выполнения этих действий, проверьте, сможете ли вы подключиться к серверу с помощью PuTTY. Если проблема останется, рекомендуется также обратиться к сообществу поддержки PuTTY для получения дополнительных рекомендаций.