Wile podczas badań zauważyłem, że SSH używa zarówno TCP, jak i UDP. Całkowicie rozumiem użycie TCP, ale UDP wydaje się nieco dziwny. Dlaczego miałbym używać „niewiarygodnego” protokołu transportu z minimalnym uzgadnianiem w celu bezpiecznego dostępu do powłoki?
Jedyne, co mogę wymyślić, to SCP, więc (duża) transmisja plików. Ale czy TCP nie byłby bardziej użyteczny z powodu uzgadniania?
W rzeczywistości rozważam otwarcie TCP na SSH, ale nie wiedząc, jakie będą tego konsekwencje, byłoby to bardzo szkodliwe.
EDYTOWAĆ
Okazuje się, że istnieje nie tylko teza o ssh nad UDP, ale także w pełni rozwinięta implementacja ssh, zwana mosh . Jednak klasyczny ssh nadal używa tylko TCP, jak określono w jego RFC .
Odpowiedzi:
Próbowałem z kilkoma połączeniami SSH z Windows do Unixa i Unixa do Unixa i nie otrzymuję żadnego pakietu UDP na porcie 22. Również serwer nasłuchuje tylko w TCP.
W tej pracy próbowali zaimplementować UDP dla transportu SSH, ale wspominają również, że domyślnie używa tylko TCP: „OpenSSH konsekwentnie używa TCP dla wszystkich swoich połączeń sieciowych, a tym samym dla funkcji VPN.”. Strona Wikipedii może powiedzieć, że jest to UDP, ponieważ programiści SSH początkowo poprosili o przypisanie UDP i TCP, ale powiązany RFC nie wspomina o tym.
źródło
... Protokół SSH używa lub używał 22 / UDP do sterowania tunelowaniem przez TCP. Jeśli poprawnie zdekodowany przez Wireshark i tunelujesz połączenie za pośrednictwem agenta ssh lub tunelujesz zdalnie lub lokalnie, zauważysz, że UDP jest zamknięty w segmentach TCP.
źródło