В некоторых случаях при SSH подключении к Linux хосту, вы можете столкнуться с очень долгим появлением окна с запросом пароля (от 30 секунд до 2 минут).
Вы можете заменить, сколько времени занимает SSH вход с помощью команды:
$ time ssh -l sysops 192.168.158.129 uname -r
В данном случае задержка при SSH входе около 30 секунд.
Чаще всего медленный вход по SSH связан с неудачными попытками разрешить DNS имена. Это означает что в настройках DNS указан несуществующий или недоступный сервер. Проверьте и исправьте это в файле:
# vim /etc/resolv.conf
Если используется Ubuntu с сетевым менеджером Network Manager, текущие настройки DNS можно получить командой:
$ nmcli device show | grep IP4.DNS
Также SSHD сервер при получении запроса на подключение от клиента по умолчанию пытается выполнить обратный поиск в DNS для IP адреса клиента. Такая проверка может занимать длительное время из-за таймаутов, если DNS не может выполнить резолвинг адреса.
Вы можете уменьшить время ожидания SSH при входе, отключив разрешение имен при подключении. Отредактируйте файл etc/ssh/sshd_config и раскоментируйте опцию:
UseDNS no
Перезапустите SSHD:
$ sudo systemctl restart sshd || systemctl restart ssh
Чтобы получить подробный лог действий, которые выполняются при SSH подключении, добавьте опцию -vvv:
$ ssh sysops@192.168.158.129 -vvv
Например, вы увидите, что при подключении перебираются разные методы аутентификации.
debug1: Next authentication method: gssapi-keyex debug1: Next authentication method: gssapi-with-mic debug1: Unspecified GSS failure. Minor code may provide more information debug1: Unspecified GSS failure. Minor code may provide more information debug1: Next authentication method: publickey debug1: Next authentication method: password
Для ускорения входа по SSH нужно отключить неиспользуемые методы аутентификации в /etc/ssh/sshd_config:
GSSAPIAuthentication no GSSAPICleanupCredentials yes # Если не используется аутентификацию в AD KerberosAuthentication no # deprecated ChallengeResponseAuthentication no
Перезапустите SSHD.
В некоторых сценариях (например при использовании зон .local) для более быстрого DNS резолвинга нужно в файле /etc/nsswitch.conf изменить строку:
hosts: files mdns4_minimal [NOTFOUND=return] dns
На
hosts: files dns
Перезапустите демон avahi:
# /etc/init.d/avahi-daemon restart
Также медленный вход по SSH может быть связан с таймаутами при разрешении имен IPv6. В этом случае вы можете принудительно использовать IPv4 для подключения:
$ ssh -4 sysops@192.168.158.129