Warum dauert es so lange, bis das Kennwort von ssh angezeigt wird?

94

Wenn ich es versuche ssh, dauert es zu lange (fast zwei Minuten), bis das Kennwort abgefragt wird.

Warum passiert das?

Neuquino
quelle
1
Die Antwort von Gilles sollte die Antwort sein, wie sie in den Kommentaren erklärt wurde.
Gertvdijk

Antworten:

143

Es gibt mehrere Dinge, die schief gehen können. Fügen Sie dies hinzu -vvv, damit ssh eine detaillierte Aufzeichnung dessen druckt, was es tut und wo es pausiert.

Das Problem kann auf dem Client oder auf dem Server liegen.

Ein häufiges Problem auf dem Server besteht darin, dass Sie eine Verbindung von einem Client herstellen, für den das Zeitlimit für Reverse-DNS-Suchvorgänge überschritten wurde. (Eine "umgekehrte DNS-Suche" bedeutet, dass von der IP-Adresse des Clientcomputers zu einem Hostnamen zurückgekehrt wird. Aus Sicherheitsgründen ist dies nicht wirklich hilfreich, da es nur geringfügig hilfreich ist, Unterbrechungsversuche anhand von Protokolleinträgen zu diagnostizieren. In der Standardkonfiguration wird dies jedoch trotzdem durchgeführt.) Fügen Sie UseDNS nozum Deaktivieren von Reverse-DNS-Lookups Folgendes hinzu /etc/ssh/sshd_config(Sie müssen auf dem Server als Root angemeldet sein; denken Sie daran, den SSH-Dienst anschließend neu zu starten).

Eine andere Sache, die schief gehen kann, ist das Zeitlimit für die GSSAPI- Authentifizierung. Wenn Sie nicht wissen, was das ist, verlassen Sie sich wahrscheinlich nicht darauf. Sie können es deaktivieren, indem Sie die Zeile GSSAPIAuthentication nozu /etc/ssh/ssh_configoder hinzufügen ~/.ssh/config(das ist auf der Clientseite).

Gilles
quelle
8
Für mich war es das GSSAPIAuthentication-Problem. Danke.
RajaRaviVarma
14
Reverse-DNS-Lookup war mein Problem
24.
2
Reverse DNS war auch für mich der Täter und hat UseDNS noes wie einen Zauber behoben. Ich bin in einem internen Netzwerk ohne DNS-Server, um Reverse-Lookups für interne IPs durchzuführen.
Jordan Mack
1
Gibt es Sicherheitsrisiken beim Deaktivieren GSSAPIAuthentication? (15 Minuten googeln hat das nicht beleuchtet)
Alexander Malakhov
3
@AlexanderMalakhov Wenn Sie sich beim Anmelden darauf verlassen, werden Sie sich selbst aussperren, wenn Sie es deaktivieren. Ansonsten nein. Und wenn Sie GSSAPI verwenden, wissen Sie, dass Sie einen GSSAPI-basierten Dienst in Ihrem Netzwerk konfigurieren mussten.
Gilles
13

Lassen Sie den Anmeldevorgang abwarten und sehen Sie, wie lange es dauern wird:

[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 ~]#

Siehe oben, es dauerte ungefähr 45 Sekunden, um sich einzuloggen -------- SEHR LANGSAM

Sobald Sie sich als root angemeldet haben, bearbeiten Sie die Datei sshd_config und ändern Sie den UseDNS-Eintrag wie folgt. Hier benutze ich sed, anstatt die Datei zu bearbeiten.

[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

Lassen Sie uns den Anmeldevorgang zeitlich festlegen und sehen, wie lange es dauern wird.

[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 ~]#

Es dauerte jetzt 6 Sekunden, bis ich das Passwort eingegeben hatte.

Mamadou Lamine Diatta
quelle
fantastisch .. ein Punkt bezüglich der Zeit .. das useDNS hat es für mich nicht behoben .. Ich hatte eine Passwortauthentifizierung und die Verzögerung war, dass die Aufforderung zur Passworteingabe angezeigt wurde .. Ich habe darauf gewartet, dass dies angezeigt wurde, und dann Strg-C ausgeführt, um die Zeit zu bestimmen Ich habe das Passwort nicht eingegeben.
Barlop
Ich kann UseDNS noin /etc/ssh/sshd_configbehoben mein Problem bestätigen
UseDNS noGelöst
Pandurang Patil
@ PandurangPatil Falsche Konfigurationsoption: usedns
Yusef Mohamadi
@ zhilevan Du solltest auch erwähnen, warum es eine schlechte Konfiguration ist. Das hilft zu verstehen, warum es schlechte Konfiguration ist
Pandurang Patil
4

Es ist etwas, was bei der Installation von Ubuntu nicht stimmt.

Um dies zu beheben, müssen Sie diese Zeile in /etc/nsswitch.conf ändern :

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

Und ändern Sie es für diesen:

hosts:          files dns
Neuquino
quelle
3
Ubuntus Konfiguration ist nicht falsch. In einigen Fällen (Heimnetzwerke ohne zentrale DNS-Server) ist dies das Richtige. In anderen (Netzwerken, in denen mDNS eine Zeitüberschreitung anfordert) ist dies schlecht.
Gilles
das [NOTFOUND = return] sollte nicht da sein.
Neuquino
4
@Neuquino Es sollte da sein. Es gibt einen Grund, den Sie anscheinend nicht verstehen. Wenn Sie mit so etwas experimentieren, müssen Sie nsswitch.confÄrger machen, und es ist keine allgemeine Lösung, um SSH zu verlangsamen.
Gertvdijk
Dies scheint mir die einzige Lösung zu sein, die funktioniert
linello
4

In meinem Fall kann das Problem durch einen Neustart behoben werden systemd-logind:

systemctl restart systemd-logind

Dies wird bei Serverfault erwähnt .

Ich muss dies jedoch regelmäßig tun und weiß nicht, wo die Ursache des Problems liegt.

Candid Dauth
quelle
1

Die Debug-Ausgabe für ssh wurde in meinem Fall nur 30 Sekunden lang angehalten, während die Verbindung hergestellt wurde. Es stellte sich heraus, dass die Lösung mit den DNS-Einstellungen auf meinem lokalen System zusammenhängt. Eine frühere Netzwerkkonfiguration hatte einen falschen DNS-Server in der /etc/resolv.confDatei zurückgelassen. Das Ersetzen durch einen aktuellen DNS-Server behebt das Problem.

ErikWeitenberg
quelle
0

Bei mir wurde die System-DNS auf 127.0.0.1 geändert, vorher war dies ein nicht existierender Host.

nano /etc/resolv.conf

Und schreibe folgendes

domain localdomain
search localdomain
(Removed this line) ===> nameserver 10.0.0.1
(Added this line) ===> nameserver 127.0.0.1
Alireza
quelle
Für mich schien diese Datei /etc/resolv.conf (no e) zu sein
Shadow
0

Ich weiß nicht so viel über die Umgebung des Posts, wie ich möchte, aber für andere mit einem ähnlichen Problem kann es ein Problem sein, mit sssddem wir ldap mojo verknüpfen.

Das passiert mir:

$ time ssh server.example.com

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

Ich muss auf den Server zugreifen (in meinem Fall über die Konsole) und dann Folgendes tun:

service restart sssd

Danach funktionieren die Dinge einfach. Ich hatte keine Zeit, die Grundursache zu debuggen, aber dieses Bandaid funktioniert für mich.

KurtB
quelle
0

Ich konnte die langsame Passwortabfrage per ssh- Problem lösen, indem ich DNS-Relay in den DHCP-Einstellungen meines dlink-Routers aktivierte. Danach funktionierten die Verbindungen mit SSH innerhalb einer Sekunde.

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

Die Standardkonfiguration leitet jede DNS-Anfrage an den Anbieter weiter. Es war langsam, obwohl ich mich mit ssh [email protected] verband. Ein Hinweis auf die Lösung war ein Eintrag in /etc/resolv.conf "search upc.at", der über dhcp bereitgestellt wird.

Im dlink-Handbuch heißt es:

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.

Nach einem DHCP-Release auf Client und Server war die Verbindung über SSH wieder schnell. HTH.

domih
quelle