Wie beschleunige ich die SSH-Anmeldung?

23

Wenn ich mich von außerhalb meines Hauses mit SSH bei meinem Ubuntu-Server anmelde, dauert es ungefähr 6 Sekunden, bis ich die Aufforderung zur Kennworteingabe erhalte. Wenn ich mich jedoch bei meinem Webhosting-Server anmelde, dauert es ungefähr 1 Sekunde. Was kann ich tun, um dies zu beschleunigen?

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04.1"
$ ssh -v
OpenSSH_4.7p1 Debian-8ubuntu1.2, OpenSSL 0.9.8g 19 Oct 2007
$ cat /proc/cpuinfo
model name      : Dual-Core AMD Opteron(tm) Processor 1210
cpu MHz         : 1000.000
cache size      : 1024 KB
$ cat /proc/meminfo
MemTotal:      2074528 kB
grokus
quelle

Antworten:

38

Der Hauptgrund, den ich dafür gesehen habe, ist eine Konfigurationsoption in SSHD. UseDNSDiese Option (standardmäßig aktiviert) veranlasst den Server, bei eingehenden Anforderungen eine DNS-Auflösung durchzuführen. Eine zeitraubende Operation. Ich habe gesehen, dass die Anmeldedauer von einer Minute plus Warten auf die Kennwortabfrage auf unter ein paar Sekunden gesunken ist. Wenn Sie /etc/ssh/sshd_configauf dem Server Änderungen UseDNS novornehmen und den SSH-Daemon neu starten (falls er nicht vorhanden ist), sollten Sie beim service ssh restartnächsten Verbindungsaufbau eine Verbesserung feststellen.

Marco Ceppi
quelle
6
Besser, um Ihre DNS-Konfiguration zu beheben.
Thorbjørn Ravn Andersen
Das hat super geklappt !! Vielen Dank! Die Login-Zeit ging von 20-30 Sekunden auf weniger als 5 Sekunden :)
AntonioCS
3
Was ist der Vorteil von UseDNSaktiviert zu haben?
ændrük
Sei vorsichtig! Wenn Sie die Direktive UserDNSnach einer MatchDirektive setzen, wird folgende Fehlermeldung is not allowed within a Matchangezeigt : blockieren Wenn Sie den SSHD neu starten, können Sie keinen SSH auf Ihrem Server ausführen. Ich habe diesen Fehler gemacht und wurde von meinem Server ausgesperrt. Denken Sie immer daran, keine Direktive am Ende von hinzuzufügen, sshd_configwenn Sie MatchDirektive darin haben.
Adriano Rosa
6

Grund Nummer 2 (nach der serverseitigen UseDNS-Option) für lange SSH-Sitzungsanmeldungen sind für mich clientseitige Verbindungsversuche mit IPv6 (das in meinem Netzwerk offensichtlich nicht richtig eingerichtet ist - oder in fast jedem anderen Netzwerk). für diese Angelegenheit).

Siehe HOWTO: SSH-Anmeldung in Ubuntu-Foren beschleunigen .

Die "Lösung" besteht darin, nur IPv4 zu aktivieren:

1) entweder für den angegebenen SSH-Client-Aufruf:

ssh -4 login@hostname

2) oder global in ssh client Konfiguration in /etc/ssh/ssh_config:

Host *
   AddressFamily inet

Natürlich wäre es richtiger, IPv6 in Ihrem Netzwerk richtig einzurichten, aber wer hat die Zeit dafür :)

Aleksander Adamowski
quelle
3

Versuchen Sie, die nächste Option mit Ihrem Befehl ssh hinzuzufügen:

-o "PreferredAuthentications=password"

(Dies verhindert, dass ssh eine andere Authentifizierungsmethode aushandelt, und beschleunigt die Passwortabfrage!)

perseo22
quelle
2
Warum überhaupt Passwörter verwenden? Warum keine Schlüssel?
TJ Ellis
1
Ganz einfach: Möglicherweise dürfen Sie keine Schlüssel verwenden! (sshd nicht konfiguriert, um sie zu verwenden, schlechte Benutzerdateiberechtigungen, etc.9
perseo22
2

Geben Sie dies außerdem auf dem Remotecomputer ein (als der Benutzer, unter dem Sie sich anmelden würden), um alle MOTD-Nachrichten zu unterdrücken:

touch ~/.hushlogin

Dies ist nicht so wichtig wie das Ausschalten, kann UseDNSjedoch bei langsameren Verbindungen hilfreich sein.

Oli
quelle
1
-1: Die MOTD wird erst nach erfolgreicher Anmeldung angezeigt. Dadurch wird die Passwortabfrage nicht schneller angezeigt.
Asa Ayers
2
Richtig, aber dennoch ein nützlicher Kommentar.
sebastian_k
2

Da Sie eine ziemlich alte Ubuntu-Version verwenden, könnte es sich um folgenden Fehler handeln: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/300151

Ein Neustart von dbus ( /etc/init.d/dbus restart) könnte helfen.

Marcel Stimberg
quelle
Ich habe eine 10.04 Box, die von 9.04 und 9.10 aktualisiert wurde. Neustart von dbus time ssh remoteServer datevon 8s auf 0,5s reduziert .
djeikyb