ssh sehr langsame Verbindung

18

Ich habe mehrere entfernte Systeme, und eines davon, ein Linode, auf dem Debian läuft, ist sehr langsam zu ssh - es dauert jedes Mal ungefähr 20-25 Sekunden. Dies scheint vor relativ kurzer Zeit geschehen zu sein. Ich habe versucht, GSSAPIAuthenticationauf nooder zu yeseinzustellen , wie in mehreren Antworten auf ähnliche Fragen vorgeschlagen, und es macht keinen Unterschied. Es macht auch keinen Unterschied, ob ich mich mit der FQDN oder der IP-Adresse anmelde. Ich habe die gleiche Verzögerung von meiner lokalen Linux-Box oder meinem lokalen Macintosh. Ich habe keine solche Verzögerung sshing von der Linode auf die lokale Linux-Box. Ich habe ein anderes Remote-System, das dieselbe Debian-Version verwendet, und ich kann in 2 Sekunden ssh darin ausführen. Der einzige Unterschied zwischen dem/etc/ssh/sshd_config Dateien auf den zwei Debian-Feldern sind, dass das schnelle keine Passwörter erlaubt und auch eine Liste der erlaubten Chiffren angibt.

Wenn ich mich ssh -vvv root@linodemit anmelde, erfolgt die Verzögerung an der mit >>>>>> gekennzeichneten Stelle

debug2: key: /root/.ssh/id_ecdsa ((nil))
debug2: key: /root/.ssh/id_ed25519 ((nil))
debug3: send packet: type 5
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50

>>>>>>

debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /root/.ssh/id_rsa
debug3: send_pubkey_test

(Dies ist nur ein Teil des Protokolls. Ein vollständiges Protokoll ist auf Anfrage erhältlich.)

Ich kann in /var/log/auth.logoder /var/log/syslogwährend der Verzögerungszeit nichts über den Login finden - danach bekomme ich nur

Jul 27 13:46:43 linode sshd[23049]: Accepted publickey for root from 199.241.27.237 port 51464 ssh2: RSA 89:08:ef:44:48:a4:84:b7:0a:de:14:65:1b:d9:86:f8
Jul 27 13:46:43 linode sshd[23049]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jul 27 13:46:43 linode systemd-logind[3235]: New session 10361 of user root.
Paul Tomblin
quelle

Antworten:

25

Wenn das Herstellen der Verbindung langsam ist, die Geschwindigkeit nach dem Herstellen jedoch normal ist, besteht höchstwahrscheinlich das Problem, dass der Server eine umgekehrte DNS-Suche für den Client durchführt und aus irgendeinem Grund fehlschlägt.

Im Allgemeinen können Sie beim Debuggen auch versuchen, sich von zwei Terminals aus anzumelden. Bei der ersten Anmeldung sehen Sie sich das sshdProtokoll auf dem Server an, während Sie versuchen, sich von der zweiten anzumelden. Dadurch erhalten Sie mehr Informationen darüber, was der Server gerade tut (oder auf was er wartet).

Sie können versuchen, einen Beweis dafür zu finden, dass es sich bei der Ursache um eine umgekehrte DNS-Suche handelt, indem Sie eine oder beide der folgenden Optionen festlegen /etc/ssh/sshd_config:

UseDNS no
UsePAM no

und prüfen Sie, ob dies das Herstellen der Verbindung beschleunigt. In diesem Fall können Sie die Dinge oft so belassen, bis sie gelöst sind (wenn Ihnen das wichtig ist).

Wenn es sich um ein umgekehrtes DNS-Suchproblem handelt, hängt dies vom DNS-Server ab, den der Computer verwendet, auf dem Sie sich anmelden. Laut Wikipedia haben nicht alle IP-Adressen einen umgekehrten Eintrag, da dies keine tatsächliche Standardanforderung ist. Dies ist jedoch eher ein Konfigurationsproblem.

Anthon
quelle
Mein neuer ISP (1000 Mbit / s Glasfaser zu Hause!) Hat keinen rDNS-Eintrag für meine IP. Also UseDNS nodas Problem so viel fixiert , wie es wird repariert.
Paul Tomblin
2
Das Hinzufügen von UseDNS hat bei mir nicht funktioniert.
Jose 'Vargas
Versuchte dies alles, keine Würfel. Schließlich nur den Client neu gestartet und alles war in Ordnung.
Medley56
Dies war sehr hilfreich. Es wurde festgestellt, dass der DNS des Servers falsch konfiguriert ist. Das Reparieren, das die langsamen ssh Anschlüsse regelte.
TemporalWolf
Das Hinzufügen von UseDNS = no und das Neustarten von sshd hat bei mir funktioniert. CentOS 7.
pzy
-2

Auf Debian / Ubuntu-Systemen besteht der Trick darin, den "Avahi-Daemon" aus dem System zu entfernen, und das Problem ist behoben.

apt-get -y purge avahi*
TRANCEMANIAC
quelle
2
Dies ist keine gute Idee -yfür den Löschbefehl. Der Benutzer sollte die Aktion vor der Ausführung überprüfen.
Rabin