Mientras investigaba, noté que SSH usa TCP y UDP. Entiendo completamente el uso de TCP, pero UDP parece un poco extraño. ¿Por qué usaría un protocolo de transporte "poco confiable" con un mínimo reconocimiento para un acceso seguro a la shell?
El único uso que se me ocurre es para SCP, por lo que la transmisión de archivos (grandes). Pero, de nuevo, ¿TCP no sería más útil debido a las cosas de apretón de manos?
De hecho, estoy considerando abrir solo TCP para SSH, pero no saber las implicaciones de eso sería bastante perjudicial.
EDITAR
Resulta que no solo hay una tesis sobre ssh sobre UDP, sino también una implementación ssh completa, llamada mosh . Sin embargo, el ssh clásico todavía solo usa TCP, como se especifica en sus RFC .
Respuestas:
Lo probé con varias conexiones SSH de Windows a Unix y Unix a Unix y no obtengo un solo paquete UDP en el puerto 22. Además, el servidor solo escucha en TCP.
En esta tesis intentaron implementar UDP para el transporte SSH, pero también mencionaron que el valor predeterminado solo usa TCP: ". OpenSSH usa TCP de manera consistente para todas sus conexiones de red y, por lo tanto, para su función VPN". La página de Wikipedia podría decir que es UDP porque los desarrolladores de SSH hicieron una solicitud inicial de asignaciones UDP y TCP, pero el RFC relacionado no lo menciona.
fuente
... El protocolo SSH usa o ha usado 22 / UDP para el control de túneles a través de TCP. Si se decodifica correctamente a través de Wireshark y está haciendo un túnel de una conexión a través de ssh-agent o de forma remota o local, notará que UDP está encapsulado dentro de los segmentos TCP.
fuente