Чому підказка "пароль" ssh займає так багато часу, щоб з'явитися?


94

Коли я намагаюся ssh, запит на введення пароля займе занадто багато часу (майже дві хвилини), щоб з’явитися.

Чому це відбувається?


1
Відповідь Жиль повинен бути відповідь , як описано в коментарях, на самому ділі.
gertvdijk

Відповіді:


143

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

Проблема може бути у клієнта чи на сервері.

Поширена проблема на сервері, якщо ви підключаєтесь до клієнта, для якого зворотний DNS шукає час. ("Зворотний пошук DNS" означає повернення з ІР-адреси клієнтської машини до імені хоста. Це не дуже корисно для безпеки, лише злегка допомагає діагностувати спроби зламу з записів журналу, але конфігурація за замовчуванням все одно робить це.) Щоб вимкнути зворотне підключення DNS, додайте UseDNS noдо нього /etc/ssh/sshd_config(вам потрібно мати root на сервері; не забудьте після цього перезапустити службу SSH).

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


8
Для мене це була проблема аутентифікації GSSAPIA. Дякую.
RajaRaviVarma

14
Зворотний пошук DNS був моєю проблемою
тринадцяте

2
Зворотний DNS був також винуватцем для мене, і UseDNS noвін вирішив це як шарм. Я перебуваю у внутрішній мережі без сервера DNS, який би обробляв зворотні пошуки внутрішніх IP-адрес.
Джордан Мак

1
Чи є наслідки для безпеки для відключення GSSAPIAuthentication? (Гугл протягом 15 хвилин на це не проливав світло)
Олександр Малахов

3
@AlexanderMalakhov Якщо ви покладаєтесь на це, щоб увійти, тоді ви заблокуєте себе, якщо відключите його. Крім цього, немає. І якщо ви використовуєте GSSAPI, ви знаєте - вам довелося б налаштувати якусь послугу на основі GSSAPI у вашій мережі.
Жиль

13

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

[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 секунд -------- ДУЖЕ СЛІД

Після входу в систему як редагувати файл 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 секунд, час, коли я ввів пароль.


фантастично .. час повторного моменту .. useDNS не зафіксував це для мене .. У мене була автентифікація пароля, а затримка була для того, щоб з'явитись підказки для введення пароля .. Я чекав, що це з'явиться потім зробив ctrl-c, так що 'час 'не включав мене введення пароля.
барлоп

Я можу підтвердити , UseDNS noв /etc/ssh/sshd_configфіксованому моє запитання

UseDNS noВирішили це
Pandurang Patil

@PandurangPatil Неправильний варіант конфігурації: usedns
Юзеф Мохамаді

@zhilevan Також слід зазначити, чому це погана конфігурація. Це допоможе зрозуміти, чому це погана конфігурація
Pandurang Patil

4

Це щось неправильне від встановлення Ubuntu.

Щоб виправити це, вам потрібно змінити цей рядок у /etc/nsswitch.conf :

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

І змініть його на цей:

hosts:          files dns

3
Конфігурація Ubuntu неправильна. У деяких випадках (домашні мережі без центральних серверів DNS) - це правильно. В інших (мережах, де mDNS запитує тайм-аут), це погано.
Жиль

[NOTFOUND = return] не повинно бути там.
Неукіно

4
@Neuquino Це повинно бути там. Це там з тієї причини, яку ви, мабуть, не розумієте. Погортаючи nsswitch.confподібне, це попросити неприємностей і не запропонувати загального рішення для уповільнення SSH.
gertvdijk

Це здається мені єдиним рішенням, яке працює
linello

4

У моєму випадку проблему можна вирішити перезапуском systemd-logind:

systemctl restart systemd-logind

Це згадується на Serverfault .

Мені це доводиться регулярно робити, і я не знаю, в чому полягає першопричина проблеми.


1

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


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

Для мене цей файл здавався /etc/resolv.conf (немає e)
Shadow

0

Я не знаю стільки про середовище плаката, як хотілося б, але для інших, хто має подібну проблему, це може бути проблема, з sssdякою ми використовуємо для прив’язки ldap mojo.

Це трапляється зі мною:

$ time ssh server.example.com

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

Я маю отримати доступ до сервера (у моєму випадку через консоль), тоді виконайте:

service restart sssd

Після цього справи просто працюють. Я не встиг налагодити першопричину, але ця бандаїда працює для мене.


0

Я міг вирішити повільний запит пароля через ssh - issue, перевіривши Увімкнути реле DNS у налаштуваннях DHCP на моєму маршрутизаторі dlink. Потім зв'язки з SSH спрацювали протягом секунди.

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

Конфігурація за замовчуванням передає кожен запит DNS постачальнику. Це було повільно, хоча я з'єднувався зі ssh pi@10.0.0.103. Підказкою до рішення є запис у /etc/resolv.conf "search 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 знову було швидким. HTH.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.