SSH “kex_exchange_identification: read: Connection reset by peer

Вопрос или проблема

У меня есть две системы в моей домашней сети. Я успешно использовал ssh между ними в течение нескольких месяцев.

Недавно я установил zerotier на “birch” и еще один узел.

В последние несколько дней, при ssh на birch с других систем (все работают на Ubuntu 24.04), я начал получать ошибку “SSH “kex_exchange_identification: read: Connection reset by peer”. Я исправил ее однажды после того, как нашел отсутствующий скрипт уведомления motd, установив пакет ‘update-notifier-common’.

Но сегодня ошибка вернулась. Брандмауэр выключен. hosts.deny пуст. И, что странно, если я ssh на мой маршрутизатор Asus, то могу ssh на ‘birch’. У меня есть две системы Ubuntu 24.4, на которых я получаю эту ошибку при ssh на ‘birch’.

Также, я использую порт Ethernet. Если я отключаю его и включаю WiFi, то могу ssh на IP WiFi, но не на IP Ethernet-адаптера. Если я оставляю проводное соединение включенным, то получаю ошибку на IP WiFi.

Наконец, я вижу это сообщение (оно повторяется каждые 5 секунд) в syslog, которого нет на других системах:

2025-03-02T00:02:29.341013-06:00 birch su[85606]: Bad remote forwarding specification '{portbase}+1:localhost:22'

Я не могу найти ничего по этому поводу и предполагаю, что это связано с проблемой.

Я вижу, что соединение устанавливается (в auth.log, но не в syslog), когда я включаю отладку в sshd_config до DEBUG3:

untu13.8
2025-03-08T12:13:11.907895-06:00 birch sshd[10284]: debug1: compat_banner: match: OpenSSH_9.6p1 Ubuntu-3ubuntu13.8 pat OpenSSH* compat 0x
04000000
2025-03-08T12:13:11.907927-06:00 birch sshd[10284]: debug1: permanently_set_uid: 124/65534 [preauth]
2025-03-08T12:13:11.907961-06:00 birch sshd[10284]: debug1: list_hostkey_types: rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519
 [preauth]
2025-03-08T12:13:11.908179-06:00 birch sshd[10284]: debug1: SSH2_MSG_KEXINIT sent [preauth]
2025-03-08T12:13:11.908236-06:00 birch sshd[10284]: Connection reset by 192.168.1.146 port 59104 [preauth]

192.168.1.146 это ‘birch’
Я вижу аналогичный вывод с “ssh -T -vvv birch”

Я удалил zerotier, перезагрузил, но я в тупике.

Ответ или решение

Для решения вашей проблемы с SSH-соединением, которое не работает с сообщением об ошибке "kex_exchange_identification: read: Connection reset by peer", необходимо провести глубокий анализ. Давайте рассмотрим теоретическую часть, примеры и способы применения решения.

Теоретическая часть

Ошибка "kex_exchange_identification: read: Connection reset by peer" возникает, когда клиентская машина пытается установить SSH-соединение с сервером, но связь разрывается до завершения обмена ключами (kex – key exchange). Это может происходить по разным причинам, включая конфигурационные ошибки, сетевые проблемы или ошибки безопасного ПО.

SSH основывается на алгоритмах обмена ключами для обеспечения безопасности передачи данных. Иногда сбои в этом процессе могут быть вызваны неправильными настройками SSH или сетевыми ограничениями, например, ошибками в файлах конфигурации SSH, ограничениями на уровне устройства или проблемами маршрутизации внутри сети.

Пример из практической ситуации

Из предоставленной информации можно выделить несколько ключевых моментов, которые могут указать на причину проблемы:

  1. Недостаточность мотд (Message of the Day) скриптов. После установки пакета update-notifier-common проблема временно исчезла.

  2. Подключение к роутеру ASUS как посреднику позволяет успешно подключаться через SSH к ‘birch’. Это может указывать на особенности маршрутизации или фильтрации трафика внутри вашей сети.

  3. Различия при использовании Ethernet и WiFi. Если Ethernet-соединение активно, ошибка возникает даже при попытке использования IP-адреса WiFi адаптера.

  4. Ошибочное удаленное переадресация. Сообщение в syslog указывает на ошибку в конфигурации удаленного переадресации портов: "Bad remote forwarding specification ‘{portbase}+1:localhost:22’".

  5. Лог-файлы (auth.log и syslog) указывают на сброс соединения до завершения процесса обмена ключами.

Применение решения

Для устранения проблемы и быстрого восстановления работоспособности SSH-соединения, выполните следующие шаги:

  1. Проверка конфигурации SSH:

    • Откройте файл конфигурации /etc/ssh/sshd_config и убедитесь, что все параметры выставлены корректно, особенно касающиеся KexAlgorithms, Ciphers и других ключевых настроек. Неправильные значения могут мешать корректному обмену ключами.
  2. Отладка сетевого соединения:

    • Проверьте настройки сети на наличие ограничений или правил, которые могут прерывать соединение. Параллельно, отключите любые VPN-сервисы и повторно проверьте работу SSH.
  3. Анализ конфигурации ZeroTier:

    • Убедитесь, что после удаления ZeroTier его конфигурации не остались в системе и не конфигурируют сеть в неверном режиме, особенно что касается маршрутизации и таблиц IP.
  4. Подключение через разные интерфейсы:

    • Проверьте, что каждый сетевой интерфейс (Ethernet или WiFi) имеет отдельные и корректно настроенные IP, и что маршруты до ‘birch’ не конфликтуют.
  5. Диагностика соединения с помощью netstat и iptables:

    • Используйте команды netstat -tuln и iptables -L для обеспечения отсутствия сетевых фильтров или конфликтующих правил, мешающих SSH-соединению.
  6. Обновление системы:

    • Убедитесь, что все связанные пакеты и компоненты операционной системы актуальны: apt update && apt upgrade. Обновления могут содержать исправления известных ошибок.
  7. Тщательный аудит логов:

    • Продолжайте анализировать логи после выполнения решений на возможность выявления дополнительных сообщений об ошибках.
  8. Обратитесь к документации SSH и актуальным форумам:

    • Освежите знания из официальной документации SSH, а также тематических форумов, где обсуждаются подобные конфликты и их решения.

Заключение

Используя такой многогранный подход, вы должны выявить истинную причину сбоя и восстановить стабильность SSH-соединений в вашей сети. Выделите время на последовательное выполнение каждого шага, чтобы устранить все возможные источники проблемы.

Оцените материал
Добавить комментарий

Капча загружается...