При подключении к службе SSH иногда приходиться долго ждать, пока консоль станет доступна для выполнения команд. Причины задержек разные и в данном руководстве мы разберем несколько причин и их решение.
Данные решения, как правило, не связаны друг с другом - поэтому лучше вносить настройки и проверять работу по каждому отдельно - так будет удобней установить настоящую причину.
Приведенные команды работают для Debian\Ubuntu, для CentOS\Alma\Rocky они могут немного отличаться, например там служба не ssh, а sshd - учитывайте это при выполнении, в остальном все также.
1. Самая распространенная причина, ожидание DNS сервера
Откройте файл конфигурации ssh службы:
nano /etc/ssh/sshd_config
Выключите параметр UseDNS, он не будет стараться получить обратную запись (PTR) у IP
UseDNS no
После внесения изменений перезапустите службу
service ssh restart
2. Не указан таймаут подключения
Откройте файл конфигурации ssh службы:
nano /etc/ssh/sshd_config
Приведите параметр к виду:
LoginGraceTime 10s
После внесения изменений перезапустите службу
service ssh restart
3. Долгое ожидание связано со службой systemd-logind
При этом лог auth.log, как правило, содержит такие события:
pam_systemd(sshd:session): Failed to create session: Connection timed out
Проверьте статус службы:
systemctl status systemd-logind
При необходимости перезапустите ее, командой restart.
Если задержка останется, откройте файл, используя vi или nano:
/etc/pam.d/common-session
Закомментируйте строку, символом #
#session optional pam_systemd.so
После чего перезапустите службу
systemctl restart systemd-logind
Попробуйте снова, но помните, что при такой работе консоль может работать не полноценно, поэтому данный вариант стоит рассматривать как временное решение.