it-swarm.com.de

Warum dauert es so lange, bis die Eingabeaufforderung von ssh angezeigt wird?

Wenn ich ssh versuche, dauert es zu lange (fast zwei Minuten), bis die Kennwortabfrage angezeigt wird.

Warum passiert das?

94
Neuquino

Es gibt mehrere Dinge, die schief gehen können. Fügen Sie -vvv hinzu, damit ssh eine detaillierte Aufzeichnung dessen druckt, was es tut, und um zu sehen, 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.) Um die Reverse-DNS-Suche zu deaktivieren, fügen Sie UseDNS no zu /etc/ssh/sshd_config hinzu (Sie müssen root auf dem Server sein; denken Sie daran, den SSH-Dienst anschließend neu zu starten).

Eine andere Sache, die kann schief gehen ist GSSAPI Zeitüberschreitung bei der Authentifizierung. Wenn Sie nicht wissen, was das ist, verlassen Sie sich wahrscheinlich nicht darauf. Sie können es deaktivieren, indem Sie die Zeile GSSAPIAuthentication no zu /etc/ssh/ssh_config oder ~/.ssh/config (auf der Clientseite) hinzufügen.

143
Gilles

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

[[email protected] ~]# time ssh [email protected]
[email protected]'s password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[[email protected] ~]# exit
logout
Connection to ISSLABNTL01 closed.

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

You have new mail in /var/spool/mail/root
[[email protected] ~]#

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.

[[email protected] ~]# grep -i dns /etc/ssh/sshd_config
#UseDNS yes

[[email protected] ~]# sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
[[email protected] ~]# grep -i dns /etc/ssh/sshd_config
UseDNS no

[[email protected] ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[[email protected] ~]# exit

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

[[email protected] ~]# time ssh [email protected]
[email protected]'s password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[[email protected] ~]# exit
logout

Connection to ISSLABNTL01 closed.

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

You have new mail in /var/spool/mail/root
[[email protected] ~]#

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

12

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

Um das Problem 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
4
Neuquino

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

systemctl restart systemd-logind

Dies wird erwähnt bei Serverfehler .

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

4
Candid Dauth

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 Datei /etc/resolv.conf zurückgelassen. Das Ersetzen durch einen aktuellen DNS-Server behebt das Problem.

1
ErikWeitenberg

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
0
Alireza

Ich könnte die langsame Passwortabfrage über ssh lösen, indem ich DNS-Relay aktivieren in den DHCP-Einstellungen meines dlink-Routers überprüfe. 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.

0
domih

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 mit sssd sein, mit dem wir ldap mojo einbinden.

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.

0
KurtB