воскресенье, 9 ноября 2025 г.

SSH. Выявление ошибок совместимости клиента и сервера

Приветствую, уважаемый читатель!

Как то мы уже привыкли, арендуешь Linux сервер, у которого открыт SSH, сразу подключаешься, например, через putty или kitty и управляешь сервером. Но бывают ситуации, когда вместо привычного ssh-клиента у вас стороннее ПО (не дорабатываемое), под капотом у которого оооочень старая версия SSH-клиента и подключение сбрасывается, т.к. на сервере не включена поддержка старых алгоритмов. 

Как можно диагностировать такую ситуацию расскажу ниже.

Первое, что можно сделать - посмотреть auth.log на сервере (это если rsyslog стоит) и скорее всего увидите ошибку ниже:

sshd[184529]: Unable to negotiate with 176.xxx.xxx.178 port 45854: no matching host key type found. Their offer: ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ssh-rsa,ssh-dss [preauth]


Второе, что можно проверить - записать трафик установления соединения по ssh (на стороне сервера) и изучить через wireshark. Напомню, что как и с TLS при установлении соединения по SSH клиент и сервер согласовывают алгоритмы шифрования\хэширования и ещё много всего.

Вот скриншот анонса алгоритмов сервера SSH:







Вот скриншот анонса алгоритмов клиента SSH:







Как видно из скриншотов, наборы алгоритмов не совпали, в этой связи сервер отправляет TCP FIN пакет.

Исправляется ситуация просто, но это снижает защищенность SSH-сервера. В конфиг sshd ( /etc/ssh/sshd_config) добавить строки:

ciphers +aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc

macs +hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-512

KexAlgorithms +diffie-hellman-group1-sha1

HostKeyAlgorithms +ssh-rsa,ssh-dss

PubkeyAcceptedAlgorithms +ssh-rsa,ssh-dss


Комментариев нет:

Отправить комментарий