SSH медленно в начале сессии


8

Запуск интерактивной оболочки через SSH происходит медленно на одном из моих серверов. Все, что приводит к этому, включая согласование шифрования, быстро, но затем оно зависает в течение 45 секунд. После этого все заканчивается и у меня появляется снаряд. Как мне определить, на чем он держится? Я попытался очистить среду и отключить всю переадресацию на случай, если это замедлило ее, но это не помогло. Вот моя тестовая команда:

env -i ssh -x -a -vvv server

и вот вывод из SSH:

debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
*(hangs for 45 seconds here)*
debug3: Wrote 128 bytes for a total of 3191
debug2: callback start
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug1: Sending environment.


@forcefsck Я не думаю, что этот пост актуален. Мое первоначальное соединение быстрое, ключи получают обмен, аутентификация быстрая, не нужно ждать запроса пароля, как в предыдущем посте. Кроме того, весь прямой и обратный DNS должен быть закончен к этому моменту, я вполне уверен. Кроме того, эта проблема не прерывистая, как в предыдущем посте, это каждый раз. Подробный вывод, который я разместил выше, начинается сразу после успешного прохождения аутентификации. Я думаю, что это больше похоже на то, как медленно запускается модуль bash или pam session.
— penguin359

Есть ли задержка для неинтерактивных сеансов? Есть ли задержка, когда вы начинаете второе соединение, пока оно активно? Какой метод аутентификации вы используете? Ваш домашний каталог каким-то образом автоматически подключается при входе в систему (удаленный или зашифрованный)? Модуль PAM может быть виновником, что у вас есть /etc/pam.d/sshd(или как он называется в вашей системе)? Если у вас есть доступ к журналам сервера, есть ли что-нибудь актуальное?
— Жиль "ТАК - перестань быть злым"

@ Жиль Да, похоже, это влияет на удаленные команды, scp и sftp. Если вы имеете в виду два отдельных соединения SSH, оба медленные. Если вы имеете в виду запуск второго сеанса через тот же сокет управления, я только что попробовал это, и это быстро, но я получаю предупреждение о том, что xauth не может заблокировать .Xauthority. Я использую все что угодно: от интерактивной клавиатуры, publickey, на основе хоста, до gssapi-keyex. Аутентификация всегда быстрая, несмотря на то, что скорость меняется незначительно. Мой домашний каталог является локальным для сервера и не зашифрован. PAM по умолчанию установлен в Ubuntu + pam_krb5.so.
— penguin359

Вы говорите "медленно на одном из моих серверов". Это ведет себя нормально при sshing на других машинах? И это с вашей домашней машины, в которую вы вошли локально? Что такое ОС на локальной и удаленной (включая версию)? Кроме того, нормально ли работает sshing с сервера на домашнюю машину? Имеет ли значение sshing от имени другого пользователя (как локального, так и удаленного)?
— Фахим Митха

Ответы:


6

В очень похожем случае это был один из сценариев update-motd.

Следующие сделали свое дело:

sudo rm /etc/update-motd.d/90-updates-available

Вот маленький помощник, который измеряет время каждого скрипта:

$ for f in /etc/update-motd.d/*;do echo $f;time $f;done
/etc/update-motd.d/00-header            0m0.007s
/etc/update-motd.d/10-help-text         0m0.005s
/etc/update-motd.d/90-updates-available 0m49.163s
/etc/update-motd.d/91-release-upgrade   0m0.152s
/etc/update-motd.d/98-fsck-at-reboot    0m0.015s
/etc/update-motd.d/98-reboot-required   0m0.003s
(output reduced to the relevant parts)

Спасибо! Большинство людей просто советуют отключить DNS, но мой ssh-вход все еще был медленным. Я начал копаться в процессе входа в систему, и ваш ответ указал мне на /etc/update-motd.d/50-landscape-sysinfo, который, казалось, был медленным.
— Rennex

1
это действительно полезно - для меня убийца был 50-landscape-sysinfo. И, кстати, вы можете просто chmod -x /etc/update-motd.d/90-updates-availableзапретить выполнение при входе в систему, а не удалять его полностью.
— Биллиноа

3

pam_krb5.so был настроен на получение токенов AFS для несуществующей оболочки, которая имела 30-секундный тайм-аут, останавливая любую аутентификацию с использованием этого модуля, а не только SSH. Убрал это, и аутентификация происходит намного быстрее.


2

Если на вашем ssh-сервере активировано обратное сопоставление DNS, это может быть причиной задержки, ищите VerifyReverseMappingв /etc/ssh/sshd_configфайле сервера.


1
Я думал, что обратное сопоставление DNS произошло до того, как аутентификация была разрешена, но я проверю это.
— penguin359

Я думаю, что вы имеете в виду UseDNS, я получил устаревшее предупреждение на VerifyReverseMapping. Независимо от того, я установил и нет, и это не помогло. Я позаботился о том, чтобы убедиться, что мое обратное сопоставление правильное и хост может сопоставить имя хоста моего клиента с записью A и обратно без проблем.
— penguin359

0

У меня была такая же проблема, но, видимо, вызванная чем-то другим. Решение:

/etc/ssh/sshd_config:
#UsePAM yes

а также:

sudo /etc/init.d/ssh stop;sudo /etc/init.d/ssh start;
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.