Вопрос или проблема
В случаях, когда удаленное устройство находится за VPN или в локальной сети, появляется следующая ошибка:
Подключение не удалось с ошибкой: "Не удалось отправить баннер на ....@..........:22"
Эта ошибка появляется нечасто и связана с тем, что соединение сбрасывается перед закрытием TCP-соединения (я наблюдал это через приложение Termius [Microsoft Store] для ssh, и сообщение об ошибке имело предупреждение перед тем, как упоминалось о проблемах TCP-соединения при закрытии; хотя эта ошибка не ограничивается Termius).
Как это исправить?
Я нашел решение, которое сработало для меня. Поскольку этот вопрос здесь не задавался, я задал вопрос и также публикую свое решение.
Поскольку проблема связана с открытым TCP-соединением (предположение) с удаленной машиной, при этом соединение SSH закрывается без закрытия TCP-соединения; исправление будет заключаться в удалении TCP-сервера и сбросе конфигураций.
Шаги, которые я выполнил:
- Убить службу dhcp (
dnsmasq
) - Удалить аренду dhcp (
/var/lib/dhcp/dhclient.leases
) - Удалить openssh-* с конфигурациями (
$ sudo apt purge openssh-*
) - Перезагрузить машину (
$ sudo reboot
) - DHCP автоматически запросит новый IP, проверьте IP (совет:
$ ifconfig | head -n2
). - Обновить кеш пакетов (
$ sudo apt update
) - Установить openssh-server (
$ sudo apt install openssh-server
: это установит все зависимости) - Проверить ssh с любого другого устройства с новым IP.
Вы можете использовать apt-get
вместо apt
, если вы к нему более привыкли.
Оставляйте комментарии/ответы, если вы нашли другое решение!
[Правка 1]
Вам следует проверить, какая у вас служба dhcp, у меня это был dnsmasq
. Это может быть isc-dhcp-server
или что-то другое.
Ответ или решение
Чтобы решить проблему с ошибкой "Connection failed with error: Failed sending banner …", возникающей при подключении по SSH, необходимо учитывать несколько важных аспектов. Эта ошибка может проявляться, когда удаленное устройство находится за VPN или в локальной сети, и чаще всего связана с проблемами завершения TCP соединения. Понимание корневых причин этой ошибки – ключ к успешному решению.
Причины ошибки
-
Неопрятное завершение соединения: Ошибка может происходить из-за обрыва TCP соединения до того, как оно будет корректно закрыто. Это часто наблюдается в условиях нестабильного сети.
-
Конфликт DHCP: Если устройство получило IP-адрес, а затем возникли проблемы с DHCP (например, устаревшие аренды), это может привести к невозможности корректной отправки соединения.
-
Проблемы с SSH сервером: Возможно, конфигурации вашего SSH-сервера нуждаются в обновлении или перес установке.
Эффективное решение
На основе личного опыта и наблюдений я разработал подробный набор действий, который, как показывает практика, помогает решить данную проблему:
-
Остановите службу DHCP. В некоторых случаях, отключение службы, например,
dnsmasq
, может разрешить конфликты с IP-адресами:sudo systemctl stop dnsmasq
-
Удалите старую аренду DHCP. Удалите устаревшие файлы аренды, чтобы избежать возможных конфликтов:
sudo rm /var/lib/dhcp/dhclient.leases
-
Удалите OpenSSH с конфигурациями. Полное удаление пакетов SSH поможет устранить возможные конфликты в конфигурации:
sudo apt purge openssh-*
-
Перезагрузите устройство. После внесенных изменений перезагрузите устройство:
sudo reboot
-
Проверьте новый IP-адрес. После перезагрузки проверьте, что устройство получило новый IP-адрес:
ifconfig | head -n2
-
Обновите кэш пакетов. Убедитесь, что у вас актуальная информация о пакетах:
sudo apt update
-
Установите OpenSSH сервер. Установите OpenSSH-сервер заново, что приведет к цепной установке необходимых зависимостей:
sudo apt install openssh-server
-
Проверьте функциональность SSH. Теперь попробуйте подключиться к вашему устройству из другой машины:
ssh user@new_ip_address
Заключение
Ошибка "Connection failed with error: Failed sending banner …" может быть следствием различных проблем, начиная от устаревших аренды DHCP и заканчивая неполадками в конфигурации SSH. Следуя предложенным шагам, вы сможете устранить возникшую проблему и восстановить корректное соединение. Не забудьте проверить, какая именно служба DHCP используется на вашем устройстве, так как она может варьироваться от dnsmasq
до isc-dhcp-server
.
Если у вас есть другие решения или советы, будет приятно их услышать. Обсудите свой опыт в комментариях, это может быть полезно для других пользователей.