Antworten:
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 no
zum 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 no
zu /etc/ssh/ssh_config
oder hinzufügen ~/.ssh/config
(das ist auf der Clientseite).
UseDNS no
es wie einen Zauber behoben. Ich bin in einem internen Netzwerk ohne DNS-Server, um Reverse-Lookups für interne IPs durchzuführen.
GSSAPIAuthentication
? (15 Minuten googeln hat das nicht beleuchtet)
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.
UseDNS no
Gelöst
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
nsswitch.conf
Ärger machen, und es ist keine allgemeine Lösung, um SSH zu verlangsamen.
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.
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.conf
Datei zurückgelassen. Das Ersetzen durch einen aktuellen DNS-Server behebt das Problem.
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
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 sssd
dem 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.
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 pi@10.0.0.103 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.