Я получаю следующую ошибку: не найден соответствующий mac: клиент hmac-md5, hmac-sha1, hmac-ripemd160, [email protected], hmac-sha1-96, hmac-md5-96 сервер hmac-sha2 [email protected],[email protected],[email protected],hmac-sha2-512,hmac-sha2-256,[email protected]
Как устранить ошибку «не найдено соответствующего mac», когда я пытаюсь подключиться по ssh
Ответы (4)
Вы получаете эту ошибку, потому что клиент и сервер не могут согласовать алгоритм хеширования для кода аутентификации сообщения.
Дополнительная информация здесь: https://blog.tinned-software.net/debug-ssh-connection-issue-in-key-exchange/
Я боролся с этой проблемой в течение приличного времени, прежде чем понял основы и первопричину. Делюсь опытом, может кому пригодится.
Я пытался подключиться по ssh к целевому серверу и получил ошибку, как показано ниже.
$ ssh -A <someTargetServerNameOrIP>
Unable to negotiate with XX.XX.XX.XX port 1234: no matching MAC found.
Their offer:
[email protected],[email protected],
[email protected],hmac-sha2-512,hmac-sha2-256,[email protected]
Основная причина этой ошибки заключается в том, что на исходном компьютере поддерживаемый MAC-адрес не содержит MAC-адреса целевого сервера.
чтобы увидеть этот запуск в командной строке на вашем компьютере
$ ssh -Q mac # output would be something like
hmac-sha1
hmac-sha1-96
hmac-sha2-256
hmac-sha2-512
hmac-md5
hmac-md5-96
[email protected]
[email protected]
Итак, теперь, чтобы подключиться к целевому серверу с их выбором Mac, который ваш сервер не поддерживает, вы должны явно указать один из Mac, поддерживаемый целевым сервером. Например, берем hmac-sha2-512 из сообщения об ошибке и пытаемся подключиться, и он подключится
$ ssh -m hmac-sha2-512 -A <someTargetServerNameOrIP>
Другим вариантом проблемы является несоответствие в шифре, которое выглядит следующим образом:
$ ssh -A <someTargetServerNameOrIP>
Unable to negotiate with XX.XX.XX.XX port 1234: no matching cipher found.
Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Основная причина - несоответствие шифра
Проверьте поддерживаемый шифр с помощью
$ ssh -Q cipher # output would be something like
3des-cbc
aes256-cbc
[email protected]
aes128-ctr
aes192-ctr
aes256-ctr
[email protected]
[email protected]
Итак, теперь, чтобы подключиться к целевому серверу с их выбором шифра, который ваш сервер не поддерживает, вы должны явно указать один из шифров, поддерживаемых целевым сервером. Например, берем hmac-sha2-512 из сообщения об ошибке и пытаемся подключиться, и он подключится
$ ssh -m aes128-cbc -A <someTargetServerNameOrIP>
Более подробную информацию об этом можно найти на https://diego.assencio.com/?index=688f3a536f63c43566c94f0818d9ecf3
Надеюсь, это поможет кому-то.
на сервере centOS/RHEL 7 при попытке доступа к серверу с помощью инструмента TMA pulse secure и получении следующей ошибки в /var/log/secure
[root@rhellinuxserver ~]# cat /var/log/secure| grep -iE "no matching" Aug 24 07:02:07 rhellinuxserver sshd[29958]: Unable to negotiate with 172.21.112.111 port 16899: no matching MAC found. Their offer: hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,[email protected] [preauth] Aug 24 07:15:24 rhellinuxserver sshd[30702]: Unable to negotiate with 172.21.112.111 port 33541: no matching MAC found. Their offer: hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,[email protected] [preauth]
Чтобы решить эту проблему, отредактируйте файл sshd_config, как указано ниже.
# cat -n /etc/ssh/sshd_config | grep -i MAcs
Найдите строку
MACs [email protected],[email protected],[email protected],hmac-sha2-512,hmac-sha2-256,[email protected]
Замените его на
MACs hmac-sha1,hmac-sha1-96,hmac-md5,[email protected],[email protected],[email protected],hmac-sha2-512,hmac-sha2-256,hmac-ripemd160
Это добавит следующие дополнительные алгоритмы MAC.
hmac-sha1,hmac-sha1-96,hmac-md5,hmac-ripemd160
перезапустите службу SSHD сейчас
systemctl restart sshd
теперь можно получить доступ к серверу и найти результат успеха в файле журнала /var/log/secure.
cat /var/log/secure| grep -i Accepted Aug 24 07:18:24 rhellinuxserver sshd[548]: Accepted password for username from 172.21.112.111 port 53776 ssh2
Последний клиент шпатлевки решил проблему.