Почему запрос ssh “пароль” появляется так долго?

Когда я пытаюсь ssh, запрос пароля появляется слишком долго (почти две минуты).

Почему это происходит?

Есть несколько вещей, которые могут пойти не так. Добавь -vvv чтобы заставить ssh распечатать подробную трассировку того, что он делает, и посмотреть, где он останавливается.

Проблема может быть на клиенте или на сервере.

Распространенная проблема на сервере заключается в том, что вы подключаетесь с клиента, для которого истекло время обратного поиска DNS. (“Обратный поиск DNS” означает возврат от IP-адреса клиентского компьютера к имени хоста. На самом деле это не очень полезно для безопасности, лишь немного полезно для диагностики попыток взлома по записям журнала, но конфигурация по умолчанию все равно это делает.) Чтобы отключить обратный поиск DNS, добавьте UseDNS no к /etc/ssh/sshd_config (вы должны быть root на сервере; не забудьте после этого перезапустить службу SSH).

Еще одна вещь, которая может пойти не так является GSSAPI истек тайм-аут аутентификации. Если вы не знаете, что это такое, вы, вероятно, не полагаетесь на это; вы можете отключить его, добавив строку GSSAPIAuthentication no к /etc/ssh/ssh_config или ~/.ssh/config (это на стороне клиента).

Дайте время процессу входа в систему и посмотрите, сколько времени это займет:

[root@gislab00207 ~]# time ssh root@ISSLABNTL01root@isslabntl01's password:Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232[root@ISSLABNTL01 ~]# exitlogoutConnection to ISSLABNTL01 closed.real    0m45.192suser    0m0.003ssys     0m0.005sYou have new mail in /var/spool/mail/root[root@gislab00207 ~]#

Смотрите выше, для входа в систему потребовалось около 45 секунд -------- ОЧЕНЬ МЕДЛЕННО

Как только Вы войдете в систему с правами root, отредактируйте файл sshd_config и измените запись UseDNS, как показано ниже. Здесь я использую sed вместо редактирования файла.

[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_config#UseDNS yes[root@ISSLABNTL01 ~]# sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_configUseDNS no[root@ISSLABNTL01 ~]# service sshd restartStopping sshd:                                             [  OK  ]Starting sshd:                                             [  OK  ][root@ISSLABNTL01 ~]# exit

Давайте определим время процесса входа в систему и посмотрим, сколько времени это займет.

[root@gislab00207 ~]# time ssh root@ISSLABNTL01root@isslabntl01's password:Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232[root@ISSLABNTL01 ~]# exitlogoutConnection to ISSLABNTL01 closed.real    0m6.192suser    0m0.003ssys     0m0.005sYou have new mail in /var/spool/mail/root[root@gislab00207 ~]#

Видите, теперь мне потребовалось 6 секунд, чтобы ввести пароль.

В моем случае проблема может быть решена путем перезапуска systemd-logind:

systemctl restart systemd-logind

Об этом упоминается при сбое сервера.

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

Это то, что происходит неправильно при установке Ubuntu.

Чтобы исправить это, вы должны изменить эту строку в /etc/nsswitch.conf:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

И поменяй его на этот:

hosts:          files dns

Отладочный вывод для ssh в моем случае просто остановился на 30 секунд, пока он "подключался". Решение оказалось связанным с настройками DNS в моей локальной системе. Предыдущая конфигурация сети оставила после себя поддельный DNS-сервер в /etc/resolv.conf файл. Замена его на текущий DNS-сервер устранила проблему.

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

Это случается со мной:

$ time ssh server.example.comreal  2m0.018suser  0m0.006ssys   0m0.004s

Я должен получить доступ к серверу (в моем случае через консоль), а затем выполнить:

service restart sssd

После этого все просто работает. У меня не было времени отладить первопричину, но эта повязка работает на меня.

В моем случае DNS разрешался через IPv6, по какой-то причине это замедляло ssh. Я сделал запись IPv4 в / etc /hosts на клиентском компьютере, а затем ssh / scp снова стал быстрым

Для меня было изменение системного dns на 127.0.0.1, до этого это был несуществующий хост.

nano /etc/resolv.conf

И напишите следующее

domain localdomainsearch localdomain(Removed this line) ===> nameserver 10.0.0.1(Added this line) ===> nameserver 127.0.0.1

Я мог бы решить проблему медленный запрос пароля через ssh - проблема путем проверки Включить ретрансляцию DNS в настройках DHCP на моем маршрутизаторе dlink. После этого соединения с SSH работали в течение секунды.

Network Settings -> Router Settings -> Enable DNS Relay [x]

Конфигурация по умолчанию перенаправляет каждый DNS-запрос поставщику. Это было медленно, хотя я подключался по ssh pi@10.0.0.103 . Подсказкой к решению была запись в /etc/resolv.conf "поиск upc.at " который предоставляется через dhcp.

В руководстве dlink говорится:

When DNS Relay is enabled, DHCP clients of the router will be assigned the router's LAN IP address as their DNS server. All DNS requests that the router receives will be forwarded to your ISPs DNS servers. When DNS relay is disabled, all DHCP clients of the router will be assigned the ISP's DNS server.

После выпуска dhcp на клиенте и сервере подключение по SSH снова прошло быстро. ХТХ.

Ответ Жиля должен быть * ответом *, как объяснено в комментариях, на самом деле.