Dlaczego pojawia się pytanie „hasło” ssh?

94

Gdy próbuję ssh, monit o hasło pojawia się zbyt długo (prawie dwie minuty).

Dlaczego to się dzieje?

Neuquino
źródło
1
Odpowiedź Gilles powinien być odpowiedź jak wyjaśniono w komentarzach, naprawdę.
gertvdijk

Odpowiedzi:

143

Istnieje kilka rzeczy, które mogą pójść nie tak. Dodaj, -vvvaby ssh wydrukował szczegółowy ślad tego, co robi, i zobacz, gdzie się zatrzymuje.

Problem może dotyczyć klienta lub serwera.

Częstym problemem na serwerze jest połączenie z klientem, dla którego upłynął limit czasu wyszukiwania wstecznego DNS. („Odwrotne wyszukiwanie DNS” oznacza powrót z adresu IP komputera klienta na nazwę hosta. Nie jest to tak naprawdę przydatne dla bezpieczeństwa, tylko nieznacznie pomaga zdiagnozować próby włamania do wpisów w dzienniku, ale i tak robi to domyślna konfiguracja). Aby wyłączyć wyszukiwanie zwrotne DNS, dodaj UseDNS nodo /etc/ssh/sshd_config(musisz być rootem na serwerze; pamiętaj, aby później ponownie uruchomić usługę SSH).

Kolejną rzeczą, która może pójść nie tak, jest przekroczenie limitu czasu uwierzytelniania GSSAPI . Jeśli nie wiesz, co to jest, prawdopodobnie nie polegasz na tym; możesz to wyłączyć, dodając wiersz GSSAPIAuthentication nodo /etc/ssh/ssh_configlub ~/.ssh/config(to po stronie klienta).

Gilles
źródło
8
Dla mnie był to problem uwierzytelnienia GSSAPIA. Dziękuję Ci.
RajaRaviVarma
14
Odwrotne wyszukiwanie DNS było moim problemem
piąty
2
Winowajcą był również dla mnie odwrotny DNS, który UseDNS nonaprawił go jak urok. Jestem w sieci wewnętrznej bez serwera DNS do obsługi wyszukiwania wstecznego dla wewnętrznych adresów IP.
Jordan Mack,
1
Czy są jakieś konsekwencje dla bezpieczeństwa dla wyłączenia GSSAPIAuthentication? (googlowanie przez 15 minut nie rzuciło na to światła)
Alexander Malakhov
3
@AlexanderMalakhov Jeśli używasz tego do logowania, zablokujesz się, jeśli go wyłączysz. Poza tym nie. A jeśli używasz GSSAPI, to wiesz - musiałbyś skonfigurować usługę opartą na GSSAPI w swojej sieci.
Gilles,
13

Odczekaj czas logowania i sprawdź, jak długo to zajmie:

[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[root@ISSLABNTL01 ~]# exit
logout
Connection to ISSLABNTL01 closed.

real    0m45.192s
user    0m0.003s
sys     0m0.005s

You have new mail in /var/spool/mail/root
[root@gislab00207 ~]#

Patrz wyżej, zalogowanie zajęło około 45 sekund -------- BARDZO WOLNY

Po zalogowaniu się jako root edytuj plik sshd_config i zmień wpis UseDNS jak poniżej. Tutaj używam sed zamiast edycji pliku.

[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_config
#UseDNS yes

[root@ISSLABNTL01 ~]# sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_config
UseDNS no

[root@ISSLABNTL01 ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[root@ISSLABNTL01 ~]# exit

Daj nam czas na proces logowania i zobacz, jak długo to potrwa.

[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[root@ISSLABNTL01 ~]# exit
logout

Connection to ISSLABNTL01 closed.

real    0m6.192s
user    0m0.003s
sys     0m0.005s

You have new mail in /var/spool/mail/root
[root@gislab00207 ~]#

Zobacz, że zajęło mi to teraz 6 sekund, czas na wpisanie hasła.

Mamadou Lamine Diatta
źródło
fantastycznie .. punkt ponownie czas .. useDNS nie naprawił tego dla mnie .. Miałem uwierzytelnianie hasłem i opóźnienie pojawiło się po pojawieniu się monitu o podanie hasła .. Poczekałem na pojawienie się, a potem zrobiłem ctrl-c więc czas „nie obejmowało mnie wpisywania hasła.
barlop
Mogę potwierdzić UseDNS now /etc/ssh/sshd_configstałej mój problem
UseDNS noRozwiązany
Pandurang Patil,
@PandurangPatil Zła opcja konfiguracji: usedns
Yusef Mohamadi
@zhilevan Należy również wspomnieć, dlaczego jest to zła konfiguracja. Pomoże to zrozumieć, dlaczego jest to zła konfiguracja
Pandurang Patil,
4

Jest to coś, co źle wychodzi z instalacji Ubuntu.

Aby to naprawić, musisz zmienić ten wiersz w pliku /etc/nsswitch.conf :

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

I zmień to na ten:

hosts:          files dns
Neuquino
źródło
3
Konfiguracja Ubuntu nie jest zła. W niektórych przypadkach (sieci domowe bez centralnych serwerów DNS) jest to słuszne. W innych (sieciach, w których przekroczono limit czasu żądań mDNS) jest źle.
Gilles
[NOTFOUND = return] nie powinno tam być.
Neuquino,
4
@Neuquino Powinno tam być. Widocznie jest tam z powodu, którego nie rozumiesz. Bawiąc się w nsswitch.conften sposób prosi o kłopoty i nie zapewnia ogólnego rozwiązania spowolnienia SSH.
gertvdijk
Wydaje mi się, że to jedyne rozwiązanie, które działa
linello
4

W moim przypadku problem można rozwiązać, uruchamiając ponownie systemd-logind:

systemctl restart systemd-logind

Jest to wspomniane w Serverfault .

Muszę to robić jednak regularnie i nie wiem, jaka jest pierwotna przyczyna problemu.

Szczery Dauth
źródło
1

Wyjście debugowania dla ssh w moim przypadku po prostu zatrzymało się na 30 sekund, podczas gdy „łączyło się”. Rozwiązanie okazało się powiązane z ustawieniami DNS w moim systemie lokalnym. Poprzednia konfiguracja sieci pozostawiła fałszywy serwer DNS w /etc/resolv.confpliku. Zastąpienie go bieżącym serwerem DNS rozwiązało problem.

ErikWeitenberg
źródło
0

Dla mnie zmieniłem system dns na 127.0.0.1, wcześniej był to nieistniejący host.

nano /etc/resolv.conf

I napisz następujące

domain localdomain
search localdomain
(Removed this line) ===> nameserver 10.0.0.1
(Added this line) ===> nameserver 127.0.0.1
Alireza
źródło
Dla mnie ten plik wyglądał na /etc/resolv.conf (no e)
Shadow
0

Nie wiem tyle o środowisku plakatu, jak chciałbym, ale dla innych z podobnym problemem może to być problem, z sssdktórym korzystamy, aby powiązać ldap mojo.

Zdarza mi się to:

$ time ssh server.example.com

real  2m0.018s
user  0m0.006s
sys   0m0.004s

Muszę uzyskać dostęp do serwera (w moim przypadku za pośrednictwem konsoli), a następnie wykonać:

service restart sssd

Potem wszystko po prostu działa. Nie miałem czasu na debugowanie pierwotnej przyczyny, ale ta bandaża działa dla mnie.

KurtB
źródło
0

Mógłbym rozwiązać problem powolnego hasła poprzez ssh - problem, zaznaczając opcję Włącz przekaźnik DNS w ustawieniach DHCP na moim routerze dlink. Następnie połączenia z SSH działały w ciągu sekundy.

Network Settings -> Router Settings -> Enable DNS Relay [x]

Domyślna konfiguracja przekazuje każde żądanie DNS do dostawcy. Było wolno, chociaż łączyłem się z ssh [email protected]. Wskazówką do rozwiązania był wpis w /etc/resolv.conf „search upc.at”, który jest dostarczany przez dhcp.

Podręcznik dlink stwierdza:

When DNS Relay is enabled, DHCP clients of the router will be assigned 
the router's LAN IP address as their DNS server. All DNS requests that 
the router receives will be forwarded to your ISPs DNS servers. 
When DNS relay is disabled, all DHCP clients of the router will 
be assigned the ISP's DNS server.

Po wydaniu dhcp na kliencie i serwerze połączenie za pośrednictwem SSH znów było szybkie. HTH.

domih
źródło