SSH langsam beim Starten der Sitzung

8

Das Starten einer interaktiven Shell über SSH ist für einen meiner Server langsam. Alles, was dazu führt, einschließlich der Aushandlung der Verschlüsselung, ist schnell, hängt dann aber 45 Sekunden lang. Danach ist es fertig und ich habe eine Muschel. Wie identifiziere ich, woran es hängt? Ich habe versucht, die Umgebung zu löschen und die gesamte Weiterleitung zu deaktivieren, falls dies die Geschwindigkeit verlangsamt, aber es hat nicht geholfen. Hier ist mein Testbefehl:

env -i ssh -x -a -vvv server

und hier ist die Ausgabe von SSH:

debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
*(hangs for 45 seconds here)*
debug3: Wrote 128 bytes for a total of 3191
debug2: callback start
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug1: Sending environment.
Pinguin359
quelle
@forcefsck Ich denke nicht, dass der Beitrag relevant ist. Meine anfängliche Verbindung ist schnell, Schlüssel werden ausgetauscht, die Authentifizierung ist schnell, kein Warten auf eine Passwortabfrage wie im obigen Beitrag. Außerdem sollten alle Vorwärts- und Rückwärts-DNS zu diesem Zeitpunkt fertig sein, da bin ich mir ziemlich sicher. Außerdem tritt dieses Problem nicht wie im obigen Beitrag zeitweise auf, sondern jedes Mal. Die ausführliche Ausgabe, die ich oben gepostet habe, beginnt unmittelbar nach der erfolgreichen Authentifizierung. Ich denke, es ist eher eine Art Bash oder ein Pam-Session-Modul, das nur langsam startet.
Pinguin359
Gibt es auch eine Verzögerung für nicht interaktive Sitzungen? Gibt es eine Verzögerung, wenn Sie eine zweite Verbindung starten, während eine aktiv ist? Welche Authentifizierungsmethode verwenden Sie? Wird Ihr Home-Verzeichnis beim Anmelden auf irgendeine Weise automatisch bereitgestellt (remote oder verschlüsselt)? Ein Pam-Modul könnte der Schuldige sein. Worin haben Sie /etc/pam.d/sshd(oder wie auch immer es auf Ihrem System heißt)? Wenn Sie Zugriff auf die Serverprotokolle haben, gibt es etwas Relevantes?
Gilles 'SO - hör auf böse zu sein'
@ Gilles Ja, es scheint sich auf Remote-Befehle, scp und sftp auszuwirken. Wenn Sie zwei separate SSH-Verbindungen meinen, sind beide langsam. Wenn Sie damit meinen, eine zweite Sitzung über denselben Kontrollsockel zu starten, habe ich das gerade versucht und es ist schnell, aber ich erhalte eine Warnung, dass xauth .Xauthority nicht sperren kann. Ich benutze alles von tastaturinteraktiv, publickey, hostbasiert bis gssapi-keyex. Die Authentifizierung ist unabhängig davon immer schnell, obwohl die Geschwindigkeit leicht variiert. Mein Home-Verzeichnis ist lokal auf dem Server und nicht verschlüsselt. PAM ist im Wesentlichen Ubuntu Standard + pam_krb5.so installiert.
Pinguin359
Sie sagen "langsam zu einem meiner Server". Verhält es sich normal, wenn es an andere Maschinen gesendet wird? Und das ist von Ihrem Heimcomputer, bei dem Sie lokal angemeldet sind? Was ist das Betriebssystem auf lokaler und Remote (einschließlich Version)? Ist das Sshing vom Server zu Ihrem Heimcomputer normal? Macht sshing als anderer Benutzer (sowohl lokal als auch remote) einen Unterschied?
Faheem Mitha

Antworten:

6

In einem sehr ähnlichen Fall war es eines der update-motd-Skripte.

Folgendes hat den Trick gemacht:

sudo rm /etc/update-motd.d/90-updates-available

Hier ist ein kleiner Helfer, der die Zeit jedes Skripts misst:

$ for f in /etc/update-motd.d/*;do echo $f;time $f;done
/etc/update-motd.d/00-header            0m0.007s
/etc/update-motd.d/10-help-text         0m0.005s
/etc/update-motd.d/90-updates-available 0m49.163s
/etc/update-motd.d/91-release-upgrade   0m0.152s
/etc/update-motd.d/98-fsck-at-reboot    0m0.015s
/etc/update-motd.d/98-reboot-required   0m0.003s
(output reduced to the relevant parts)
Daniel Alder
quelle
Vielen Dank! Die meisten Leute raten nur, DNS auszuschalten, aber mein SSH-Login war immer noch langsam. Ich fing an, mich mit dem Anmeldevorgang zu befassen, und Ihre Antwort verwies mich auf /etc/update-motd.d/50-landscape-sysinfo, was langsam zu sein schien.
Rennex
1
das ist wirklich hilfreich - für mich war der mörder 50-landscape-sysinfo. Und zu Ihrer Information, Sie können einfach chmod -x /etc/update-motd.d/90-updates-availableverhindern, dass es beim Anmelden ausgeführt wird, anstatt es vollständig zu entfernen.
Billynoah
3

pam_krb5.so wurde so konfiguriert, dass AFS-Token für eine nicht vorhandene Shell erfasst werden, bei der eine Zeitüberschreitung von 30 Sekunden die Authentifizierung mit diesem Modul und nicht nur mit SSH stoppt. Das wurde entfernt und die Authentifizierung erfolgt viel schneller.

Pinguin359
quelle
2

Wenn auf Ihrem SSH-Server die umgekehrte DNS-Zuordnung aktiviert ist, kann dies die Ursache für die Verzögerung sein. Suchen Sie VerifyReverseMappingin der /etc/ssh/sshd_configDatei des Servers nach.

Frederik Deweerdt
quelle
1
Ich dachte, dass die umgekehrte DNS-Zuordnung stattgefunden hat, bevor die Authentifizierung erfolgreich war, aber ich werde das testen.
Pinguin359
Ich denke, Sie meinen UseDNS. Ich habe eine veraltete Warnung zu VerifyReverseMapping erhalten. Unabhängig davon habe ich beide auf Nein gesetzt und es hat nicht geholfen. Ich achte darauf, dass meine umgekehrte Zuordnung korrekt ist und der Host den Hostnamen meines Clients problemlos einem A-Datensatz und wieder zurück zuordnen kann.
Pinguin359
0

Ich hatte das gleiche Problem, aber anscheinend durch etwas anderes verursacht. Die Lösung:

/etc/ssh/sshd_config:
#UsePAM yes

und:

sudo /etc/init.d/ssh stop;sudo /etc/init.d/ssh start;
Ole Tange
quelle