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

79

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

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

    
задан Neuquino 22.01.2013 в 21:55
источник

8 ответов

127

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

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

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

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

    
ответ дан Gilles 22.01.2013 в 22:15
источник
11

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

[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[root@ISSLABNTL01 ~]# exit
logout
Connection to ISSLABNTL01 closed.

real    0m45.192s
user    0m0.003s
sys     0m0.005s

You 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_config
UseDNS no

[root@ISSLABNTL01 ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[root@ISSLABNTL01 ~]# exit

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

[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[root@ISSLABNTL01 ~]# exit
logout

Connection to ISSLABNTL01 closed.

real    0m6.192s
user    0m0.003s
sys     0m0.005s

You have new mail in /var/spool/mail/root
[root@gislab00207 ~]#

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

    
ответ дан Mamadou Lamine Diatta 04.10.2013 в 14:39
4

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

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

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

И измените его для этого:

hosts:          files dns
    
ответ дан Neuquino 22.01.2013 в 21:55
3

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

systemctl restart systemd-logind

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

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

    
ответ дан Candid Dauth 22.04.2016 в 19:01
1

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

    
ответ дан ErikWeitenberg 25.07.2014 в 18:29
0

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

nano /etc/resolv.conf

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

domain localdomain
search localdomain
(Removed this line) ===> nameserver 10.0.0.1
(Added this line) ===> nameserver 127.0.0.1
    
ответ дан Alireza 07.12.2013 в 06:51
0

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

Это происходит со мной:

$ time ssh server.example.com

real  2m0.018s
user  0m0.006s
sys   0m0.004s

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

service restart sssd

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

    
ответ дан KurtB 15.09.2014 в 20:36
0

Я мог бы решить запрос медленного пароля через 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 было быстрым снова. НТН.

    
ответ дан domih 19.06.2015 в 21:11