Wofür verwendet SSH UDP?

38

Nachforschungen haben ergeben, dass SSH sowohl TCP als auch UDP verwendet. Ich verstehe die Verwendung von TCP vollständig, aber UDP scheint ein bisschen seltsam. Warum sollte ich ein "unzuverlässiges" Transportprotokoll mit minimalem Handshake für den sicheren Shell-Zugriff verwenden?

Die einzige Verwendung, die ich mir vorstellen kann, ist für SCP, also (große) Dateiübertragung. Wäre TCP wegen des Handshakes nicht nützlicher?

Tatsächlich denke ich darüber nach, nur TCP für SSH zu öffnen, aber die Auswirkungen davon nicht zu kennen, wäre ziemlich schädlich.


BEARBEITEN

Es stellt sich heraus, dass es nicht nur eine These zu ssh over UDP gibt, sondern auch eine vollwertige ssh-Implementierung namens mosh . Das klassische SSH verwendet jedoch weiterhin nur TCP, wie in den RFCs angegeben .

Alex
quelle
2
Warum verwendet SSH Ihrer Meinung nach UDP? Ich habe es mit mehreren SSH-Verbindungen von Windows zu Unix und Unix zu Unix versucht und ich bekomme kein einziges UDP-Paket an Port 22. Auch der Server lauscht nur auf TCP.
MTAK
1
Nun, Wikipedia sagt so viel. En.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers Außerdem scheinen Benutzer im Web einige Dinge durch eine ssh-udp-Kombination zu tunneln, aber es war einfach nicht klar, warum sie UDP und nicht TCP verwenden würden. Daher meine Frage.
alex
In dieser Arbeit wurde versucht, UDP für den SSH-Transport zu implementieren, es wird jedoch auch erwähnt, dass standardmäßig nur TCP verwendet wird: "OpenSSH verwendet TCP konsistent für alle Netzwerkverbindungen und damit für die VPN-Funktion." Die Wikipedia-Seite könnte sagen, dass es sich um UDP handelt, da die SSH-Entwickler eine erste Anforderung für UDP- und TCP-Zuweisungen gestellt haben, der zugehörige RFC erwähnt dies jedoch nicht. Aber ich muss zustimmen, eine interessante Frage.
MTAK
Huh. Habe das nicht erwartet. Schreiben Sie das als Antwort auf, Sie verdienen ein paar Punkte.
alex

Antworten:

42

Ich habe es mit mehreren SSH-Verbindungen von Windows zu Unix und Unix zu Unix versucht und ich bekomme kein einziges UDP-Paket an Port 22. Auch der Server lauscht nur auf TCP.

In dieser Arbeit wurde versucht, UDP für den SSH-Transport zu implementieren, es wird jedoch auch erwähnt, dass standardmäßig nur TCP verwendet wird: "OpenSSH verwendet TCP konsistent für alle Netzwerkverbindungen und damit für die VPN-Funktion." Die Wikipedia-Seite könnte sagen, dass es sich um UDP handelt, da die SSH-Entwickler eine erste Anforderung für UDP- und TCP-Zuweisungen gestellt haben, der zugehörige RFC erwähnt dies jedoch nicht.

mtak
quelle
5

... Das SSH-Protokoll verwendet oder hat 22 / UDP für die Tunnelsteuerung über TCP verwendet. Wenn die Dekodierung ordnungsgemäß über Wireshark erfolgt und Sie eine Verbindung entweder über ssh-agent oder remote oder lokal tunneln, werden Sie feststellen, dass UDP in den TCP-Segmenten gekapselt ist.

Der Root-Benutzer
quelle