Відповіді:
Є кілька речей, які можуть піти не так. Додайте, -vvv
щоб ssh надрукував детальний слід того, що він робить, і подивіться, де він призупиняється.
Проблема може бути у клієнта чи на сервері.
Поширена проблема на сервері, якщо ви підключаєтесь до клієнта, для якого зворотний DNS шукає час. ("Зворотний пошук DNS" означає повернення з ІР-адреси клієнтської машини до імені хоста. Це не дуже корисно для безпеки, лише злегка допомагає діагностувати спроби зламу з записів журналу, але конфігурація за замовчуванням все одно робить це.) Щоб вимкнути зворотне підключення DNS, додайте UseDNS no
до нього /etc/ssh/sshd_config
(вам потрібно мати root на сервері; не забудьте після цього перезапустити службу SSH).
Інша річ, яка може піти не так - це час закінчення аутентифікації GSSAPI Якщо ви не знаєте, що це таке, ви, мабуть, не покладаєтесь на це; ви можете вимкнути його, додавши рядок GSSAPIAuthentication no
до /etc/ssh/ssh_config
або ~/.ssh/config
(це на стороні клієнта).
UseDNS no
він вирішив це як шарм. Я перебуваю у внутрішній мережі без сервера DNS, який би обробляв зворотні пошуки внутрішніх IP-адрес.
GSSAPIAuthentication
? (Гугл протягом 15 хвилин на це не проливав світло)
Дайте час процесу входу і подивіться, скільки часу це займе:
[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 no
Вирішили це
Це щось неправильне від встановлення Ubuntu.
Щоб виправити це, вам потрібно змінити цей рядок у /etc/nsswitch.conf :
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
І змініть його на цей:
hosts: files dns
nsswitch.conf
подібне, це попросити неприємностей і не запропонувати загального рішення для уповільнення SSH.
У моєму випадку проблему можна вирішити перезапуском systemd-logind
:
systemctl restart systemd-logind
Це згадується на Serverfault .
Мені це доводиться регулярно робити, і я не знаю, в чому полягає першопричина проблеми.
Вихід з налагодження для ssh у моєму випадку просто зупинився на 30 секунд, поки він "підключався". Рішення виявилося пов'язаним з налаштуваннями DNS в моїй локальній системі. Попередня мережна конфігурація залишила позаду фальшивий DNS-сервер у /etc/resolv.conf
файлі. Замінивши його на поточному сервері DNS виправили проблему.
Для мене була зміна системного 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
Я не знаю стільки про середовище плаката, як хотілося б, але для інших, хто має подібну проблему, це може бути проблема, з sssd
якою ми використовуємо для прив’язки ldap mojo.
Це трапляється зі мною:
$ time ssh server.example.com
real 2m0.018s
user 0m0.006s
sys 0m0.004s
Я маю отримати доступ до сервера (у моєму випадку через консоль), тоді виконайте:
service restart sssd
Після цього справи просто працюють. Я не встиг налагодити першопричину, але ця бандаїда працює для мене.
Я міг вирішити повільний запит пароля через 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.