Я пытаюсь подключиться к новой системе с помощью PuTTY и вижу следующее:
Фатальная ошибка: Не удалось согласовать алгоритм ключа хоста (доступно: rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256)
Проверка доступных алгоритмов на сервере:
acoder@client ~ $ nmap --script ssh2-enum-algos -sV -p 22 server.name.here
Starting Nmap 7.01 ( https://nmap.org ) at 2021-04-16 10:33 EDT
Nmap scan report for server.name.here (1.1.1.1)
Host is up (0.018s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.0 (protocol 2.0)
| ssh2-enum-algos:
| kex_algorithms: (7)
| ecdh-sha2-nistp256
| ecdh-sha2-nistp384
| ecdh-sha2-nistp521
| diffie-hellman-group-exchange-sha256
| diffie-hellman-group14-sha256
| diffie-hellman-group16-sha512
| diffie-hellman-group18-sha512
| server_host_key_algorithms: (3)
| rsa-sha2-512
| rsa-sha2-256
| ecdsa-sha2-nistp256
| encryption_algorithms: (6)
| [email protected]
| aes256-ctr
| aes256-cbc
| [email protected]
| aes128-ctr
| aes128-cbc
| mac_algorithms: (6)
| [email protected]
| [email protected]
| [email protected]
| hmac-sha2-256
| hmac-sha1
| hmac-sha2-512
| compression_algorithms: (2)
| none
|_ [email protected]
Вот что доступно на моем клиентском компьютере:
PubkeyAcceptedKeyTypes
acoder@client ~ $ ssh -Q key
ssh-ed25519
[email protected]
ssh-rsa
ssh-dss
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
Шифры
acoder@client ~ $ ssh -Q cipher
3des-cbc
blowfish-cbc
cast128-cbc
arcfour
arcfour128
arcfour256
aes128-cbc
aes192-cbc
aes256-cbc
[email protected]
aes128-ctr
aes192-ctr
aes256-ctr
[email protected]
[email protected]
[email protected]
MAC-ы
acoder@client ~ $ ssh -Q mac
hmac-sha1
hmac-sha1-96
hmac-sha2-256
hmac-sha2-512
hmac-md5
hmac-md5-96
hmac-ripemd160
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
KexAlgorithms
acoder@client ~ $ ssh -Q kex
diffie-hellman-group1-sha1
diffie-hellman-group14-sha1
diffie-hellman-group-exchange-sha1
diffie-hellman-group-exchange-sha256
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
[email protected]
Что я здесь упускаю из виду?
решение1
Вы упускаете из виду, что PuTTY и ssh (OpenSSH) — это две совершенно разные программы. Они не имеют общего кода; они не используют общую криптографическую библиотеку. Списки ssh -Q
ничего не говорят вам о том, что PuTTY может поддерживать.
Я думаю, проблема в том, что ваша версия PuTTY слишком старая. Из методов подписи, предлагаемых сервером, для подписей ECDSA ( ecdsa-sha2-nistp256
) требуется как минимум версия PuTTY0,68, тогда как методы RSA-SHA2 ( rsa-sha2-*
) будут доступны только в следующем выпуске PuTTY (0.75).
Причина этого в том, что серверы OpenSSH ssh-rsa
совсем недавно отключили поддержку старого алгоритма подписи на основе SHA1 (они по-прежнему используют те же ключи RSA, но только через подписи на основе SHA2), а поддержка ключей DSA была удалена несколько лет назад.