web-dev-qa-db-ja.com

SSHは何にUDPを使用しますか?

研究をしているうちに私はSSHがTCPとUDPの両方を使っていることに気づいた。私はTCPの使い方を完全に理解していますが、UDPは少し奇妙に思えます。安全なシェルアクセスのために最小限のハンドシェイクで「信頼できない」トランスポートプロトコルを使用するのはなぜですか?

私が考えることができる唯一の用途はSCP、つまり(大きな)ファイル転送です。しかし、やはりTCPはハンドシェイクのためにもっと便利ではないでしょうか。

実際、私はSSH用にTCPを開くことだけを考えていますが、それが意味をなすことを知っていても全く有害ではないでしょう。


編集

UDPを介したsshに関する論文だけでなく、 mosh と呼ばれる本格的なssh実装もあります。しかしながら、 RFC で指定されているように、古典的なsshはまだTCPのみを使用します。

36
alex

私は、WindowsからUnixへ、そしてUnixからUnixへのいくつかのSSH接続でそれを試みました、そして、私はポート22の上に単一のUDPパケットを得ません。また、サーバーはTCPだけを待ち受けます。

この 論文 では彼らはSSHトランスポート用にUDPを実装しようとしましたが、デフォルトではTCPのみを使用すると述べています。 "OpenSSHはTCPすべてのネットワーク接続とVPN機能のために一貫して "#:。 SSH開発者が最初にUDP&TCP割り当てを要求したため、ウィキペディアのページにはUDPと表示されることがありますが、 関連のRFC ではそれについての言及はありません。

41
mtak

... SSHプロトコルは、TCPを介したトンネリング制御に22/UDPを使用しているか、または使用しています。 Wiresharkを介して正しくデコードされ、ssh-agentまたはリモートまたはローカルのいずれかを介して接続をトンネリングしている場合は、UDPがTCPセグメント内にカプセル化されていることがわかります。

5
The Root User