У меня есть кластер Raspberry Pi из 3 Raspberry Pi, каждый из которых работает под управлением Ubuntu Server 20.04 в моей домашней сети (192.168.0.n). Каждому Raspberry Pi назначен статический IP-адрес через конфигурацию Netplan.
При попытке подключиться по SSH к любому из Raspberry Pi с моего рабочего стола Ubuntu 20.04 вход по SSH либо занимает много времени, либо в конечном итоге выполняется, но ввод данных происходит очень медленно или вообще не реагирует.
Я попытался сделать это с ноутбука с Windows с PuTTYy в той же сети и увидел то же самое поведение, в конечном итоге приведшее к следующей ошибке:
Сетевая ошибка: программное обеспечение вызвало прерывание соединения
На каждой из Pi, на которой установлен SSHD, я установил UseDNS no
и закомментировал session optional pam_systemd.so
в /etc/pam.d/common-session
, по сути следуя шагам, описанным на этом сайте:https://jrs-s.net/2017/07/01/slow-ssh-logins/
Мой маршрутизатор предоставлен моим интернет-провайдером Sky UK.
Странно то, что я загрузил JuiceSSH на свой телефон Android и могу подключиться к каждому из Pi и успешно выполнять команды.
Я в полном замешательстве. Буду признателен за любую помощь или руководство по дальнейшему устранению неполадок.
решение1
Вы можете увеличить детализацию команды ssh, чтобы ssh -vvv user@host
выяснить причину задержки.
Проблема вызвана множественными конфигурациями. Сначала проверьте host
файл:
sudo nano /etc/hosts
Там будет одна строка с 127.0.0.1, убедитесь, что имя вашего хоста указано правильно перед ней. Если у вас его нет, просто добавьте:
127.0.0.1 hostname
Если вы не уверены в имени хоста, вы можете узнать его с помощью:
echo $HOSTNAME
После сохранения нет необходимости перезапускать какие-либо службы, и вы увидите ускорение. Если нет, попробуйте второе изменение.
nano /etc/ssh/sshd_config
Этот файл содержит конфигурацию сервиса SSH и по умолчанию имеет некоторые параметры, которые могут быть не оптимальными в вашем случае. Чтобы вы могли изменить его, не забудьте использовать sudo ;)
X11Forwarding
может замедлить передачу данных, но обычно это нормально, чтобы сохранить его yes
. То же самое PasswordAuthentication
, что делает соединение более простым и безопасным. Измените и установите их no
для теста и сохраните файл. затем перезапустите службу с помощью:
sudo service sshd restart
Есть случай, когда у вас быстрое выполнение команды, но медленный вход в систему по ssh, а затем возникает проблема с аутентификацией. Для проверки двух распространенных случаев UseDNS
и UsePAM
в sshd_config
файле. Чтобы проверить их, попробуйте:
nano /etc/ssh/sshd_config
а затем добавьте или отредактируйте, если они существуют, как:
UsePAM no
UseDNS no
отключите обе службы одновременно, чтобы проверить их эффект, и не забудьте сбросить настройки ssh
службы после сохранения.
Если вы не добились никаких улучшений, верните все обратно и проверьте, htop
нет ли подозрительных запущенных процессов. Проверьте использование ЦП и памяти и, возможно, уничтожьте их.
Я не буду делать это дольше, так что, к сожалению, если проблема не исчезнет, ответьте здесь, чтобы получить больше идей.
решение2
Я наконец-то выяснил, что вызывало зависание сеансов SSH с моего ноутбука Ubuntu 20.04 на моем кластере Raspberry Pi (влияющих на все 3) по беспроводной сети. Отключите управление питанием для беспроводного устройства. Сначала выведите список состояний сетевого устройства:
sudo iwconfig
Если управление питанием включено, отключите его, изменив 3 на 2 в следующем файле:
cat /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
[connection]
wifi.powersave = 2
После изменения мне пришлось перезагрузить ноутбук.