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.
penguin359
источник
@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. Убрал это, и аутентификация происходит намного быстрее.

penguin359
источник
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;
Оле Танге
источник