Что замедляет мой вход в SSH?

9

Каждый раз, когда я ssh вход на сервер, это всегда очень медленно. В ответе на мой предыдущий пост говорилось, что "просмотр файла из 200 строк должен занять миллисекунду или около того, поэтому я сомневаюсь, что это так".

Я попытался ssh -vvv time@serverи вывод был загружен здесь . Я обнаружил, что при переходе к каждой из этих трех строк в выводе, это особенно медленно:

debug1: Next authentication method: gssapi-with-mic 

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_1000' not found 


debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_1000' not found 

Интересно, почему и что я могу сделать, чтобы это изменить? Спасибо и всего наилучшего!


Обновить:

Ответ Игнасио предлагает мне «отключить все методы аутентификации GSS / Kerberos в вашей конфигурации».

Итак /etc/ssh/ssh_config, нужно ли мне убедиться, что «нет» стоит за каждой из всех опций, начинающихся с «GSS»: GSSAPIAuthentication, GSSAPIDelegateCredentials, GSSAPIKeyExchange, GSSAPITrustDNS, GSSAPIAuthentication и GSSAPIDelegateCredentials?

Тогда какие параметры для метода аутентификации "Kerberos" мне нужно поставить "нет" позади?

PS: ниже приводится содержание моего локального сайта /etc/ssh/ssh_configс комментариями, которые здесь не копируются:

Host *
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no
Тим
источник
Сколько раз вы собираетесь задать один и тот же вопрос?
Пол Томблин
@PaulTomblin: не много. :-)
Тим
Возможный дубликат Как ускорить мой слишком медленный вход в SSH?
Жиль "ТАК - перестань быть злым"
@ Жиль: Спасибо, я исправил свою проблему из этого поста. Раньше мне приходилось ждать 30 раз, чтобы курсор мигал, теперь он должен мигать 7 раз. (1) Является ли нормальная скорость ожидания, когда курсор мигнет 7 раз? (2) Почему это работает, комментируя GSSAPIAuthentication yesи GSSAPIDelegateCredentials no?
Тим

Ответы:

10
debug1: Next authentication method: gssapi-with-mic

Это Керберос. Отключите все методы аутентификации GSS / Kerberos в вашей конфигурации. Смотрите ssh_config(5)man-страницу, PreferredAuthenticationsoption, для более подробной информации.

Игнасио Васкес-Абрамс
источник
Спасибо! Под «вашей конфигурацией» вы подразумеваете мой локальный или удаленный сервер?
Тим
PreferredAuthenticationsнаходится на клиенте. На сервере используйте GSSAPIAuthenticationвместо этого.
Игнасио Васкес-Абрамс
1
Спасибо! Итак, в /etc/ssh/ssh_config(1) я должен убедиться, что «нет» стоит за каждой из всех опций, начинающихся с «GSS»: GSSAPIAuthentication, GSSAPIDelegateCredentials, GSSAPIKeyExchange, GSSAPITrustDNS, GSSAPIAuthentication и GSSAPIDelegateCredentials? (2) Какие параметры для метода аутентификации "Kerberos" мне нужно поставить "нет" позади? PS: я только что обновил свой пост с содержанием моего местного /etc/ssh/ssh_config.
Тим
1
1) Модификации PreferredAuthenticationsдостаточно. 2. Kerberos использует GSS; отключение GSS достаточно.
Игнасио Васкес-Абрамс
Спасибо! Могу ли я спросить, как изменить PreferredAuthentications? Я не могу найти его в справочной странице ssh_config (5)
Тим
3

UseDNS noи CheckHostIP noдолжен ускорить вещи тоже.

Это также хорошая мера безопасности, позволяющая использовать только протокол 2. Если вам не нужен IPv6, отключите его (AddressFamily).

Nils
источник
1

Это может быть ssh / etc / ssh_prng_cmds? В ssh есть задание, которое запускает серию команд, чтобы сделать вещи случайными при входе в систему. Одна из этих команд, вероятно, занимает слишком много времени, потому что она делает что-то глупое на вашем компьютере. Теперь я могу думать только о том, что ssh требует, чтобы компьютер срубил самое большое дерево в лесу ......

СЕРДЦЕ.

Таким образом, «запустить» некоторые из этих команд из командной строки и выяснить их одним занимает много времени. Закомментируйте ЭТО.

Clonea
источник
1

Для меня мне был нужен GSSAPI, и я не хотел отключать обратный поиск DNS, это просто не казалось хорошей идеей, поэтому я заглянул на страницу man для resolv.conf. Оказывается, что межсетевой экран между мной и серверами, с которыми я работал SSH, вмешивался в запросы DNS, потому что они не были в той форме, которую ожидал межсетевой экран. В конце концов все, что мне нужно было сделать, это добавить эту строку в resolv.conf на серверах, с которыми я работал в SSH -

параметры один запрос-открыть

Сапан Гангули
источник
Для тех, кто исследует подобные проблемы, см. Также: unix.stackexchange.com/a/141278/23367
tuomassalo