Jak przyspieszyć moje zbyt wolne logowanie ssh?


42

Bieganie ssh user@hostnamezajmuje około 30 sekund. Oto scenariusz:

  • jest to maszyna wirtualna w lokalnej sieci LAN
  • Komputery z systemem Windows i Mac otrzymują natychmiastowe logowanie
  • Używam Debiana i mogłem reprodukować na maszynie Ubuntu
  • ktoś korzystający z Ubuntu mówi, że logowanie do mojej maszyny (lokalnej sieci LAN) jest również natychmiastowe
  • użycie nazwy hosta adres IP zajmuje około połowę czasu (~ 15 s)

[ aktualizacja ]

Używając ssh -vvv user@hostname, tutaj czeka najbardziej:

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

A potem trochę tu czeka:

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
korzystasz z uwierzytelniania za pomocą hasła lub klucza publicznego? a jeśli hasło, id_dsaczy id_rsaplik a lub jest w twoim ~/.ssh? Może instalacja ssh próbuje złego uwierzytelniania pierwszy i serwer nie zaprzecza, ale po prostu zignorować ten wniosek wynikający z tego 30s Timeout
Tobias Kienzler

@tobias Używam hasła i nie mam "~/.ssh"pliku. To katalog, w którym jest tylko "known_hosts"plik.
tshepang

5
Wygląda na to, że masz 15-sekundowy limit DNS. Być może serwer wykonuje wyszukiwanie DNS; jeśli możesz, upewnij się, że UseDNS now sshd_configna serwerze. W każdym razie biegnij, ssh -vvv user@hostnameaby zobaczyć, gdzie wisi login.
Gilles „SO- przestań być zły”,

@ gil Thanks. Zaktualizowałem pytanie. Poproszę administratora o sprawdzenie tego ustawienia UseDNS .
tshepang

3
@Tshepang: Och, używasz uwierzytelniania Kerberos (GSSAPI). Nie znam tego. Jeśli jest źle skonfigurowany, być może powoduje opóźnienie. O to możesz zapytać swojego administratora. DNS może być czerwonym śledziem; to najczęstsza przyczyna na wolności, ale być może twój problem jest inny.
Gilles „SO- przestań być zły”,

Odpowiedzi:


32

Edytuj swój plik/ etc / ssh / ssh_config ” i skomentuj następujące linie:

GSSAPIAuthentication yes
GSSAPIDelegateCredentials no

3
+1 Dobra odpowiedź! (1) Czy jest to normalna prędkość dla połączenia logowania ssh, aby kursor migał 7 razy? (2) Dlaczego to działa, komentując GSSAPIAuthentication yesi GSSAPIDelegateCredentials no? @Tshepang
Tim

@ Tim (1), który jest o wiele za długi ... w zależności od połączenia, nie oczekuję, że zajmie to więcej niż 2 sekundy; (2) Nie mam pojęcia, po prostu to działa
tshepang

1
Domyślne ustawienie uwierzytelniania GSSAPIA w większości wersji OpenSSH to „nie”, ale niektóre dystrybucje ustawiają go na „tak” w plikach sshd_config i ssh_config. Jeśli nie potrzebujesz go / używasz, spowalnia to uzgadnianie połączenia / uwierzytelnienia.
tgharold

Jeśli używane jest uwierzytelnianie LDAP / AD, czy wyłączenie GSSAPI nie spowoduje użycia prostego powiązania, potencjalnie wysyłając hasła przez sieć w postaci zwykłego tekstu?
Shannon,

Sprawdź, czy wszystkie serwery nazw nadal istnieją w /etc/resolv.conf. Jeśli nie, wyjmij je. To rozwiązało mój problem.
technokrat

30

Miałem ten problem i rozwiązałem go, wyłączając odwrotną rozdzielczość DNS w SSH.

Więc sshd_configna serwerze zmień to:

 #UseDNS yes

do tego:

UseDNS no

1
Zrobiłem zmianę (chociaż nie miałem komentowanej opcji UseDNS ), zresetowałem mój serwer ssh i nadal ten sam problem.
tshepang 21.01.11

2
@Thmm, dziwne. Jedyne problemy z prędkością, jakie kiedykolwiek miałem z SSH, były z tego powodu.
Earlz

1
Byłem sceptyczny, ponieważ logowałem się przy użyciu adresu IP (domowej sieci LAN), ale to rozwiązanie rozwiązało mój problem. Ze względu na Google, choć miało to miejsce tuż po tym, opóźnienie nie miało nic wspólnego z komunikatem „klucz: /home/mylogin/.ssh/id_ecdsa ((zero))” (podczas działania ssh -vvv).
Skippy le Grand Gourou

7

Czy zweryfikowałeś konfigurację DNS?

Wypróbuj ustawienie mdns offw /etc/host.conf.

To wyłącza rozdzielczość mdns i bardzo mi pomogło.

EDYTOWAĆ:

Wygląda na to, że Gentoo traktuje to nieco inaczej. Aby wyłączyć wyszukiwanie DNS multiemisji, musisz zmienić plik /etc/nsswitch.conf.
Powinno być coś takiego:

hosts:          files mdns

Zmień to na:

hosts:          files dns

+1 dobry pomysł. @ Tshepang czy ssh łączy się szybciej, gdy bezpośrednio używasz adresu IP hosta?
Tobias Kienzler,

@tobias zajmuje o połowę mniej czasu
tshepang

Dostaję /etc/host.conf: line 2: bad command powiadomień o losie off'` gdy biegnę ssh user@hostname.
tshepang 10.01.11

Wydaje się, że jest to przestarzałe ustawienie, ponieważ glibc 2.3.x (2006): forums.gentoo.org/viewtopic-t-476558-highlight-mdns.html . Czego używasz (system operacyjny, wersja glic)?
tshepang,

1
Mówisz, że użycie adresu IP zajmuje tylko połowę czasu. Oznacza to, że masz problem z rozpoznawaniem nazwy (IP => FQDN lub FQDN => IP). Najpierw spójrz na swoją konfigurację DNS, a następnie spróbuj dowiedzieć się, czy masz problem z ssh, czy nie.
Christian


1

Sprawdź także, czy nscdjest zainstalowany i działa.

Brak pamięci podręcznej dns może wydłużyć czas potrzebny na rozstrzygnięcie rekordu PTR (przy założeniu, że klient ssh wykonuje wyszukiwanie wsteczne dns dla adresu IP serwera)


0

Mam ten sam problem w środowisku Windows 2008 R2, ale „useDNS nie” nie działa.

Próbuję dodać do pliku hosts adres IP i host łączącego się serwera i jego szybsze o 30 sekund. Co sprawia, że ​​myślę, że rozdzielczość może być w DNS.

Próbuję dodać serwery DNS, ale to nie rozwiązuje problemu.

Mój serwer ma dwa sufiksy DNS. 1 dla domeny korporacyjnej, do której należy serwer (domain.com), a drugi dla zewnętrznego interfejsu łączącego się z siecią prywatną (domain.net).

Kolejność sufiksów DNS to najpierw domena.net, a następnie domena.com

Moi klienci SFTP / SSH są w domenie korporacyjnej. Nawiasem mówiąc, problematyczni klienci pochodzą z domeny korporacyjnej.

Dla mnie to, że najpierw tworzę domenę.com, a potem domenę.net

Opóźnienie połączenia 2m30s wcześniej stało się tylko 3-4s.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.