🔐 Как исправить ошибку “ssh_exchange_identification: read: Connection reset by peer” Ошибка |

🔐 Как исправить ошибку “ssh_exchange_identification: read: Connection reset by peer” Ошибка

Мануал

Ошибка “ssh_exchange_identification: read: Connection reset by peer” возникает, когда удаленная машина препятствует SSH-соединению.

Ошибка не настолько специфична, чтобы сразу объяснить, что ее вызвало.

Чтобы успешно решить проблему, необходимо определить ее причину.

В этом руководстве мы покажем, как исправить ошибку “ssh_exchange_identification: read: Connection reset by peer”, с подробным анализом вероятных причин и наиболее эффективных решений.

Значение ошибки “”ssh_exchange_identification: read: Connection reset by peer”

Ошибка “ssh_exchange_identification: read: Connection reset by peer” возникает из-за внезапного разрыва соединения сервером на этапе идентификации.

В данном контексте сегмент “Connection reset by peer” означает, что сервер остановил соединение, не предоставив никаких существенных идентификационных данных.

Ошибка обычно возникает при инициировании SSH-соединения с удаленным сервером.

🛡️ Как обезопасить и защитить сервер OpenSSH

Термин “ssh_exchange_identification” обозначает важный шаг в процессе установки соединения, на котором клиент и сервер обмениваются идентификационной информацией.

Этот обмен является основополагающим для установления безопасного соединения.

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

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

В следующих разделах рассматриваются возможные причины и способы устранения ошибки.

Что вызывает ошибку “ssh_exchange_identification: read: Connection reset by peer”

Ошибка может быть вызвана различными факторами, наиболее распространенными из которых являются:

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

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

Обучение поиску и устранению неисправностей и определение основной причины поможет вам предотвратить проблему в будущем.

🖧 30+ вопросов и ответов на интервью по SSH

Устранение ошибки “ssh_exchange_identification: read: Connection reset by peer”

Перезапуск демона sshd на сервере

Демон sshd – это фоновый процесс, который запускается на сервере и управляет входящими SSH-соединениями.

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

Возможное решение ошибки “ssh_exchange_identification: read: Connection reset by peer” – перезапустить демон sshd на сервере.

Если вы используете Linux, выполните приведенную ниже команду, чтобы перезапустить службу:

sudo systemctl restart sshd

вы можете повторить попытку подключения, чтобы проверить, исчезла ли ошибка.

Проверка состояния сервера SSH

Проверка состояния сервера SSH – важный шаг в устранении проблем, связанных с SSH.

Чтобы проверить состояние службы sshd, выполните следующую команду:

  sudo systemctl status ssh

Если служба SSH не работает или возникли проблемы, перезапустите ее с помощью одной из приведенных ниже команд:

Для систем, использующих systemd:

sudo systemctl restart ssh

Для систем, использующих init.d:

sudo service ssh restart

После перезапуска службы снова проверьте ее состояние, чтобы убедиться, что она работает без ошибок.

Если служба отсутствует, установите ее и запустите openssh-сервер, выполнив следующие команды:

  sudo apt install openssh-server
sudo systemctl start ssh

Пинг сервера

Поскольку слабое или неудачное соединение может вызвать ошибку “ssh_exchange_identification: read: Connection reset by peer”, важно проверить сетевое соединение, пропинговав сервер.

Соединение является стабильным, если пакеты передаются успешно и без потерь.

Попытка войти в систему с другого хоста

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

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

Подключитесь к серверу с другой клиентской машины, например с другого компьютера или виртуальной машины.

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

🖧 Как использовать конфигурационный файл SSH

Проверка файла логов SSH

Проверка файлов журнала SSH на сервере может помочь в диагностике и устранении ошибки “ssh_exchange_identification: read: Connection reset by peer”.

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

Расположение файлов журнала зависит от операционной системы.

В различных дистрибутивах Linux они обычно располагаются в следующих местах:

  • /var/log/auth.log
  • /var/log/secure
  • /var/log/auth.log

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

Найдите сообщения об ошибках, которые могут указывать на причину сброса соединения.

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

Проверьте MaxAuthTries

Наличие нескольких ключей SSH на вашей машине может превысить значение MaxAuthTries на сервере.

Этот параметр отображает максимальное количество разрешенных попыток аутентификации, а значение по умолчанию равно 6.

Чтобы решить эту проблему, увеличьте значение MaxAuthTries в конфигурационном файле sshd и перезапустите демон sshd.

Откройте файл конфигурации с помощью текстового редактора, например nano:

  sudo nano /etc/ssh/sshd_config

Найдите строку MaxAuthTries, расмментируйте ее (уберите знак #) и увеличьте значение или добавьте строку, если ее нет в файле.

Параметры проверки бездействия

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

Если значения слишком малы, сервер может слишком быстро отключать простаивающие соединения и вызывать ошибку “ssh_exchange_identification: read: Connection reset by peer”.

Файл конфигурации обычно находится по адресу /etc/ssh/sshd_config и может быть отредактирован с помощью текстового редактора.

Найдите следующие строки и убедитесь, что их значения соответствуют действительности:

ClientAliveInterval 300

Этот параметр определяет интервал (в секундах), через который сервер отправляет клиенту сообщение keep-alive, чтобы проверить, активен ли клиент.

Обычное значение – от 300 до 900 секунд (от 5 до 15 минут).

ClientAliveCountMax 3

Этот параметр задает количество неотвеченных сообщений keep-alive, которое сервер допускает перед отключением клиента.

Обычное значение – от 2 до 5.

После внесения изменений в файл конфигурации перезапустите службу SSH:

sudo service ssh restart

Проверка файла hosts.deny

Файлы hosts.deny и hosts.allow являются обертками TCP.

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

Примечание: Проверьте файлы hosts.deny и hosts.allow на удаленном сервере, а не на локальном клиенте.

Зайдите на ваш удалённый сервер и откройте файл hosts.deny с помощью текстового редактора.

Если вы используете nano в системе на базе Debian, выполните следующую команду:

sudo nano /etc/hosts.deny

Проверьте, можно ли найти в файле ваш локальный IP или имя хоста.

Если они присутствуют, удалите или закомментируйте их, поскольку они помешают вам установить удаленное соединение.

После внесения необходимых изменений сохраните файл и выйдите.

Попробуйте повторно подключиться по SSH.

Проверьте файл hosts.allow

В качестве дополнительной меры предосторожности проверьте файл hosts.allow.

Правила доступа в hosts.allow применяются в первую очередь.

Они имеют приоритет перед правилами, указанными в файле hosts.deny.

Выполните следующую команду, чтобы отредактировать файл hosts.allow:

sudo nano /etc/hosts.allow

Добавление имен хостов и IP-адресов в этот файл определяет исключения из настроек файла hosts.deny.

Например, строгая политика безопасности в файле etc/hosts.deny будет запрещать доступ всех хостов:

sshd : ALL
ALL : ALL

Затем вы можете добавить один IP-адрес, диапазон IP-адресов или имя хоста в файл etc/hosts.allow.

Если добавить следующую строку, то только следующему IP будет разрешено установить SSH-соединение с удаленным сервером:

sshd : 10.10.0.5, LOCAL

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

Проверьте настройки MaxStartups и MaxSessions

Параметры MaxStartups и MaxSessions в файле конфигурации SSH-сервера могут помочь в устранении проблем, связанных с SSH.

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

MaxStartups определяет максимальное количество одновременных неаутентифицированных соединений, которые принимает SSH-сервер.

При достижении этого предела дополнительные попытки входящих соединений задерживаются или отклоняются.

Например, следующая настройка разрешает до 10 неаутентифицированных соединений сразу, до 30 соединений через 30 секунд и до 60 соединений через 60 секунд:

MaxStartups 10:30:60

MaxSessions контролирует максимальное количество открытых сеансов для одного сетевого соединения.

Он ограничивает количество одновременных интерактивных сеансов, которые может иметь одно соединение.

Например, следующая настройка ограничивает одно сетевое подключение максимум 10 одновременными сеансами:

MaxSessions 10

При необходимости измените настройки в соответствии с мощностью и потребностями вашего сервера и посмотрите, устранит ли это ошибку.

Проверьте настройки брандмауэра

Брандмауэры могут блокировать входящий или исходящий трафик SSH, препятствуя успешным соединениям и вызывая ошибку “ssh_exchange_identification: read: Connection reset by peer”.

Убедитесь, что SSH-сервер прослушивает нужный порт.

По умолчанию для SSH используется порт 22.

Вы можете использовать команду netstat для проверки процесса сервера SSH (sshd) и порта, на котором он прослушивается:

sudo netstat -tulpn | grep ssh

В приведенном выше примере вывод показывает, что SSH-сервер прослушивает все доступные интерфейсы IPv4 и IPv6 на порту 22.

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

Конкретные команды зависят от используемого программного обеспечения брандмауэра:

Для систем, использующих ufw:

sudo ufw status

Для систем, использующих iptables:

sudo iptables -L

Для систем, использующих firewalld:

sudo firewall-cmd --list-all

Найдем правила, разрешающие трафик на порт SSH (по умолчанию 22).

Если ни одно правило не разрешает трафик SSH, возможно, вам нужно добавить его.

Проверьте специальные руководства для каждого типа брандмауэра и добавьте правило.

Проверьте программное обеспечение для предотвращения вторжений

Если вы пытались подключиться несколько раз, ваш IP может быть заблокирован программным обеспечением для предотвращения вторжений.

Fail2ban – это служба, предназначенная для защиты от атак методом грубой силы, и она может ошибочно расценить ваши попытки аутентификации как атаку.

Fail2ban отслеживает и динамически изменяет правила брандмауэра, чтобы запретить IP-адреса, которые демонстрируют подозрительное поведение.

🛡️ CrowdSec, открытая, модернизированная и совместная система предотвращения вторжений (fail2ban)

Он отслеживает журналы, такие как файлы hosts.deny и hosts.allow, которые мы редактировали ранее.

В нашем примере мы использовали следующую команду, чтобы проверить, не отклоняет ли iptables ваши попытки подключения:

sudo iptables -L --line-number

На выводе вы увидите список всех попыток аутентификации.

Если брандмауэр препятствует SSH-соединению, вы можете внести свой IP в белый список с помощью fail2ban.

В противном случае служба будет постоянно блокировать все последующие попытки.

Чтобы получить доступ к файлу конфигурации fail2ban, выполните следующую команду:

sudo nano /etc/fail2ban/jail.conf

Отредактируйте файл, не комментируя строку ignoreip =, и добавьте IP или диапазон IP-адресов, которые вы хотите внести в белый список.

Перезагрузка сервера

Если ни один из описанных выше шагов по устранению ошибки не помог вам ее устранить, последнее средство – перезагрузка сервера.

Иногда ошибка “ssh_exchange_identification: read: Connection reset by peer” может быть вызвана исчерпанием памяти на сервере, и перезагрузка является быстрым решением проблемы.

Убедитесь, что на сервере нет критически важных данных или запущенных процессов, так как они будут прерваны, и данные могут быть потеряны, если они используются во время перезагрузки.

Если вы используете Linux, выполните приведенную ниже команду, чтобы перезагрузить сервер:

sudo reboot

🇮🇷 Как использовать команды Linux Shutdown, PowerOff и Reboot

После перезагрузки проверьте, исчезла ли ошибка при повторном подключении.

Заключение

Мы тщательно проверили наиболее распространенные причины ошибки “ssh_exchange_identification: read: Connection reset by peer”.

Рассмотрев все возможные варианты, вы успешно решили проблему и теперь знаете, как бороться с подобными проблемами в дальнейшем.

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий