Як пришвидшити мій занадто повільний вхід в ssh?


42

Біг ssh user@hostnameзаймає ~ 30с. Ось сценарій:

  • це VM в локальній локальній мережі
  • Машини Windows та Mac отримують миттєвий вхід
  • я використовую Debian, і я міг відтворити за допомогою машини Ubuntu
  • хтось із Ubuntu каже, що вхід в мою машину (локальну локальну мережу) також миттєвий
  • використання IP-адреси імені хоста займає приблизно вдвічі менше часу (~ 15 с)

[ оновлення ]

Використовуючи ssh -vvv user@hostname, ось, де вона найбільше чекає:

debug3: authmethod_lookup gssapi-with-mic
debug3: remaining preferred: publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-with-mic
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

1
ви використовуєте пароль або автентифікацію панкі? а якщо пароль - це файл id_dsaабо id_rsaфайл у вашому ~/.ssh? можливо, ваша установка ssh спробує спочатку неправильну автентифікацію, і ваш сервер не заперечує, а просто ігнорує цей запит, що призводить до
закінчення

@tobias Я використовую пароль і не маю "~/.ssh"файлу. Це каталог, і в ньому є лише "known_hosts"файл.
thepang

5
Схоже, у вас є таймаут DNS 15-х років. Можливо, сервер здійснює пошук DNS; якщо ви можете, переконайтеся , що у вас є UseDNS noв sshd_configна сервері. У будь-якому випадку запустіть, ssh -vvv user@hostnameщоб побачити, де висить логін.
Жил "ТАК - перестань бути злим"

@gil Дякую Я оновив питання. Я попрошу адміністратора перевірити наявність цього параметра UseDNS .
tshepang

3
@Theheng: О, ви використовуєте автентифікацію Kerberos (GSSAPI). Я з цим не знайомий. Якщо це неправильно налаштовано, можливо, це спричиняє затримку. Це те, що ви можете запитати у свого адміністратора. DNS може бути червоною оселедцем; це найчастіша причина в дикій природі, але, можливо, ваша проблема інша.
Жил "ТАК - перестань бути злим"

Відповіді:


32

Відредагуйте " / etc / ssh / ssh_config " і прокоментуйте ці рядки:

GSSAPIAuthentication yes
GSSAPIDelegateCredentials no

3
+1 Приємна відповідь! (1) Чи є нормальною швидкістю для з'єднання для входу в ssh час, коли курсор миготить 7 разів? (2) Чому це працює, коментуючи GSSAPIAuthentication yesі GSSAPIDelegateCredentials no? @Tshepang
Тім

@Tim (1) це занадто довго ... залежно від з'єднання, я не очікую, що це займе 2 секунди; (2) Я поняття не маю, тільки що це працює
tshepang

1
За замовчуванням для GSSAPIA аутентифікації в більшості версій OpenSSH є "ні", але деякі дистрибутиви встановлюють його "так" у файлах sshd_config та ssh_config. Якщо він вам не потрібен / не користується, він уповільнює рукостискання підключення / автентифікації.
tgharold

Якщо використовується автентифікація LDAP / AD, чи не відключення GSSAPI не спричинить використання простого прив'язки, потенційно надсилаючи паролі по мережі в прямому тексті?
Шеннон

Перевірте, чи всі сервера імен все ще існують у /etc/resolv.conf. Якщо їх немає, вийміть їх. Це вирішило мою проблему.
технократ

30

У мене була ця проблема і я її вирішив, відключивши зворотну роздільну здатність DNS в SSH.

Отже, sshd_configна сервері змініть це:

 #UseDNS yes

до цього:

UseDNS no

1
Я вніс зміни (хоча у мене не було коментованих параметрів UseDNS ), скинув свій ssh-сервер і все одно та сама проблема.
thepang

2
@The hmm, непарне. Єдині проблеми зі швидкістю, які я коли-небудь мав із SSH, були через це.
граф

1
Я був скептично налаштований для входу за допомогою IP-адреси (домашня локальна мережа), але це рішення вирішило мою проблему. Заради Google, хоча це сталося одразу після цього, затримка не мала нічого спільного з повідомленням "key: /home/mylogin/.ssh/id_ecdsa ((nil))" (під час запуску ssh -vvv).
Skippy le Grand Gourou

7

Ви перевірили налаштування DNS?

Спробуйте налаштування mdns offв /etc/host.conf.

Це вимикає роздільну здатність mdns і мені дуже допомогло.

Редагувати:

Здається, gentoo справляється з цим дещо інакше. Щоб вимкнути пошук багатоадресних DNS, вам потрібно змінити файл /etc/nsswitch.conf.
Повинно бути щось таке:

hosts:          files mdns

Змініть його на:

hosts:          files dns

+1 хороша ідея. @Tshepang швидше з'єднується ssh, коли ви безпосередньо використовуєте IP-адресу імені хоста?
Тобіас Кіенцлер

@tobias займає вдвічі більше часу
tshepang

Я знімаю /etc/host.conf: line 2: bad command mdns '', коли біжу ssh user@hostname.
tshepang

Здається, це застаріла настройка, оскільки glibc 2.3.x (2006): forums.gentoo.org/viewtopic-t-476558-highlight-mdns.html . Що ви використовуєте (ОС, версія glic)?
tshepang

1
Ви говорите, що для використання IP-адреси потрібно лише половину часу. Це означає, що у вас є проблема з роздільною здатністю вашого імені (IP => FQDN або FQDN => IP). Тому спочатку подивіться на свій DNS-конфігурацію, а потім спробуйте дізнатися, чи є у вас проблема з ssh чи ні.
Крістіан

3

Додавання імені хоста /etc/hostsіноді може вирішити цю проблему.


Працює для одного імені хоста, але рішення Earlz є більш загальним (і виправляє ту саму проблему).
Skippy le Grand Gourou

1

Також перевірте, чи nscdвстановлено та працює.

Немає кеш-файлу dns може збільшити час, необхідний для вирішення запису PTR (якщо припустити, що ssh-клієнт виконує зворотний пошук dns для IP-адреси сервера)


0

У мене така ж проблема в середовищі Windows 2008 R2, але "useDNS ні" не працює.

Я намагаюся додати до файлів хостів IP та хост підключувального сервера та його швидше на 30 секунд. Що змушує мене думати, що роздільна здатність може бути в DNS.

Я намагаюся додати DNS-сервери, але це не вирішує.

Мій сервер має два суфікси DNS. 1 - для корпоративного домену, якому належить сервер (domain.com), а іншого - для його зовнішнього інтерфейсу, який підключається до приватної мережі (domain.net).

Порядок суфікса DNS - це спершу domain.net, а потім - domen.com

Мої клієнти SFTP / SSH перебувають у корпоративній сфері. До речі, проблемні клієнти з корпоративної сфери.

Що для мене працює, це те, що я роблю domain.com спочатку, а тоді domain.net другим

Затримка підключення 2m30s раніше становила лише 3-4 секунди.

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