SSH-Verbindungsaufbau zu langsam

SSH-Verbindungsaufbau zu langsam

Ich habe Probleme beim Verbinden mit meiner lokalen Centos 6.3-VM mit 500 MB RAM.

Unten sehen Sie die Ausgabe der ssh -vvv localhostVerbindung:

OpenSSH_6.3, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /usr/local/etc/ssh_config
debug2: ssh_connect: needpriv 0
debug1: Connecting to localhost [127.0.0.1] port 22.
^^^^^^^^^^ Loading this statement takes more than a minute

debug1: Connection established.
...

debug1: Next authentication method: password 
root@localhost's password:
^^^^^^^^^^ This step takes a minute too

debug3: packet_send2: adding 64 (len 50 padlen 14 extra_pad 64)
debug2: we sent a password packet, wait for reply
debug1: Authentication succeeded (password).
Authenticated to localhost ([127.0.0.1]:22).
debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug3: packet_set_tos: set IP_TOS 0x10
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug2: channel 0: request shell confirm 1
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel_input_status_confirm: type 99 id 0
debug2: PTY allocation request accepted on channel 0
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: shell request accepted on channel 0
Last login: Wed Oct  9 13:27:02 2013 from 10.0.0.2

Bitte geben Sie mir Tipps, wie ich diese Verzögerung beseitigen kann.

Antwort1

Ich vermute, dass das Problem Timeouts bei DNS-Anfragen sind. Versuchen Sie, die Verbindung über die IP-Adresse statt über den Hostnamen herzustellen und deaktivieren Sie die UseDNSOption auf dem Server, mit dem Sie eine Verbindung herstellen. Ansonsten:

  1. vorausgesetzt, Sie stellen vom VM-Host aus eine Verbindung dorthin her, würde ich erwarten, ssh localhostdass eine Verbindung zum Host hergestellt wird, nicht zur Gast-VM. Es sei denn, Sie verfügen über eine interessante Netzwerkkonfiguration.

  2. Für die erste Verzögerung möchten Sie es möglicherweise ausführen straceund prüfen, bei welchem ​​Systemaufruf der sshClient hängt.

  3. Führen Sie für die zweite Verzögerung topdie VM aus, um zu sehen, was dort passiert, während Sie eine Verbindung herstellen. Gleichzeitig schlage ich vor, den SSH-Daemon im Debugmodus auf einem alternativen Port auszuführen und eine Verbindung zu dieser Instanz herzustellen. Sie werden sehen, wo er wartet. Führen Sie einfach Folgendes aus (als Root):

    sshd -ddd -p 2222 -o UsePrivilegeSeparation=no
    

    Dadurch wird der SSH-Daemon auf Port 2222 gestartet, es werden viele Informationen protokolliert ( -ddd) und es wird beim Anmelden keine Rechtetrennung verwendet (das Deaktivieren der Rechtetrennung erleichtert das Nachvollziehen der Vorgänge in strace, da nur ein Prozess verwendet wird). Sie können -o UseDNS=nodie oben genannte Option auch deaktivieren.

Antwort2

Wenn es sich um eine VM handelt, kann es an unzureichender Entropie liegen.Verwenden Sie diese Zeile, um die verfügbare Entropie vor/während Ihres Verbindungsversuchs zu überwachen:

while true; do sleep 5; cat /proc/sys/kernel/random/entropy_avail; done

Wenn dieser Wert bereits sehr niedrig ist oder während des Verbindungsversuchs deutlich abfällt, ist er sehr wahrscheinlich der Übeltäter.

BEARBEITEN:Dies wirkt sich auf die verfügbare Entropie selbst aus, da das Starten neuer Prozesse Entropie verbraucht. Siehe auchhttps://blog.flameeyes.eu/2011/03/entropy-broken

Sie können die verfügbare Entropie erhöhen, indem Sie entweder einen Daemon ( rng-toolsoder clrngd) installieren, der versucht, mehr Entropie zu sammeln, oder sicherstellen, dass Ihrer VM je nach Ihrer Virtualisierungslösung ein geeignetes Entropiegerät zugewiesen ist.

verwandte Informationen