Warum funktioniert ssh manchmal mit -vvv und manchmal ohne?

Warum funktioniert ssh manchmal mit -vvv und manchmal ohne?

-vmit einer maximalen Begrenzung von 3–4 steuert die Ausführlichkeit des sshBefehls.

Ich bin hinter einem Proxy und habe SSH so eingerichtet, dass es einen Proxy verwendet. Das könnte also der Fall sein, aber ich habe festgestellt, dass

ssh [email protected] -vvvvist zuverlässiger als . Nennen Sie mich verrückt, aber wenn ich die Ausführlichkeit nicht angebe, stellt es manchmal einfach keine Verbindung her. Wenn ich die Ausführlichkeit angebe, ist es informativer und stellt eine Verbindung her.ssh [email protected]

Gibt es eine Erklärung für dieses Verhalten? Und für mich ist das ein ziemlich konsistentes Verhalten. Ändert die Ausführlichkeit irgendwie eine Variable in der Art und Weise, wie SSH eine Verbindung herstellt und Daten zurückgibt, sodass es zum Funktionieren gezwungen wird?

Antwort1

Denn ssh -vvvdas Drucken von Nachrichten verbringt viel Zeit, und dadurch hat die andere Seite mehr Zeit, auf Pakete zu antworten ... Nein, ich sehe keinen wirklichen Unterschied.

Ich vermute einen Beobachtungsfehler. Ich vermute, dassder zweite sshVersuch hat eine höhere Erfolgswahrscheinlichkeit als der erste(und das -vvvist nur ein Zufall, da Sie dazu neigen, es -vvvbeim zweiten Mal zu verwenden, beim ersten Mal jedoch nicht).

  • Wenn der erste sshVersuch aufgrund eines kurzzeitigen (nicht länger als ein paar Sekunden) Problems an einem Router/einer Firewall/einem Proxy fehlschlägt und die Wahrscheinlichkeit, dass eine SSH-Verbindung fehlschlägt,P, dann ist die Wahrscheinlichkeit, dass der zweite Versuch fehlschlägtvorausgesetzt, Sie haben einen zweiten Versuch unternommenIstP, so dass die Wahrscheinlichkeit, dass der zweite Versuchwird gemacht und scheitertist p².

  • Wenn der erste sshVersuch aufgrund eines DNS-Lookup-Fehlers fehlschlägt (Lookup des Servers durch den Client, Lookup Ihres Rechners durch den Proxy, ...), kann der Fehler an einem zu kurzen Timeout liegen. Beim zweiten Versuch liegen die Daten bereits in einem Cache bereit und kommen sofort an.

  • Wenn der erste sshVersuch fehlschlägt, weil etwas (der Server oder eine zwischengeschaltete Firewall, vielleicht Ihr Proxy) Daten von der Festplatte laden oder Berechnungen durchführen musste und es während des Ladens oder Berechnens der Daten zu einer Zeitüberschreitung gekommen ist, werden die Daten beim zweiten Versuch bereits im Cache gefunden.

@meder, ist meine eingeklammerte Vermutung in Absatz 2 richtig?

Antwort2

Der einzige Unterschied, den ein -v oder eine beliebige Anzahl von -vs machen sollte, ist die Ausführlichkeitsstufe, die Ihnen zurückgegeben wird. Verbindungsdebug, X-Weiterleitungsstatistiken usw.

Es ist durchaus möglich, dass zahlreiche „-v“-Anweisungen eine instabile Verbindung oder eine Verbindung mit einem Gerät aufrechterhalten, das inaktive Verbindungen unbedingt beenden möchte. Was die eigentliche SSH-Kommunikation über das Kabel betrifft, sollte es bei der ursprünglichen Verbindung jedoch nicht anders sein.

verwandte Informationen