Приветствую, уважаемый читатель!
Как то мы уже привыкли, арендуешь 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


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