web-dev-qa-db-fra.com

Pourquoi SSH utilise-t-il UDP?

En faisant des recherches, j'ai remarqué que SSH utilise à la fois TCP et UDP. Je comprends parfaitement l'utilisation de TCP, mais UDP semble un peu étrange. Pourquoi devrais-je utiliser un protocole de transport "non fiable" avec une négociation minimale pour un accès sécurisé à Shell?

La seule utilisation à laquelle je peux penser est pour SCP, donc la transmission de fichiers (volumineux). Mais encore une fois, TCP ne serait-il pas plus utile en raison de la poignée de main?

En fait, je n’envisage d’ouvrir que TCP pour SSH, mais je ne saurais pas en comprendre les implications.


EDIT

Il s'avère qu’il n’ya pas seulement une thèse sur ssh sur UDP, mais aussi une implémentation ssh à part entière, appelée mosh . Cependant, le ssh classique n’utilise toujours que le protocole TCP, comme spécifié dans ses RFCs .

36
alex

Je l'ai essayé avec plusieurs connexions SSH de Windows vers Unix et Unix vers Unix et je ne reçois pas un seul paquet UDP sur le port 22. De plus, le serveur n'écoute que sur TCP.

Dans cette thèse , ils ont essayé d'implémenter UDP pour le transport SSH, mais ils ont également mentionné que la valeur par défaut utilise uniquement TCP: ". OpenSSH utilise TCP de manière cohérente pour toutes ses connexions réseau et donc pour sa fonctionnalité VPN. ". La page Wikipedia pourrait indiquer qu'il s'agit d'un protocole UDP, car les développeurs SSH ont demandé les attributions UDP & TCP, mais le RFC lié n'en fait aucune mention.

41
mtak

... Le protocole SSH utilise ou a utilisé 22/UDP pour le contrôle de tunneling via TCP. Si vous décodez correctement via Wireshark et que vous tunnelisez une connexion via ssh-agent ou par tunnel à distance ou localement, vous remarquerez que UDP est encapsulé dans les segments TCP.

5
The Root User