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


41

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

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

実際、SSH用にTCPのみを開くことを検討していますが、その影響を知ることは非常に有害です。


編集

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


2
なぜSSHはUDPを使用すると思いますか?WindowsからUnix、UnixからUnixへの複数のSSH接続で試してみましたが、ポート22で単一のUDPパケットを取得しません。また、サーバーはTCPのみをリッスンします。
mtak 14

1
Wikipediaはen.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbersと同じくらい多くを語っています。また、Web上のユーザーはssh-udpコンボを介していくつかのことをトンネルしているように見えますが、TCPではなくUDPを使用する理由は明らかではありませんでした。したがって、私の質問。
アレックス14

この論文では、SSH転送にUDPを実装しようとしましたが、デフォルトではTCPのみを使用していることにも言及しています。「OpenSSHは、すべてのネットワーク接続、つまりVPN機能に一貫してTCPを使用しています」ウィキペディアのページでは、SSH開発者がUDPとTCPの割り当てを最初に要求したため、UDPと表示される場合がありますが、関連するRFCでは言及されていません。しかし、私は同意しなければなりません、興味深い質問です。
mtak 14

ほら それを期待していなかった。まあ、答えとしてそれを書いて、あなたはいくつかのポイントに値する。
アレックス14

回答:


44

WindowsからUnix、UnixからUnixへの複数のSSH接続で試してみましたが、ポート22で単一のUDPパケットを取得しません。また、サーバーはTCPのみをリッスンします。

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


5

... SSHプロトコルは、TCPを介したトンネリング制御に22 / UDPを使用している、または使用しています。Wiresharkを介して適切にデコードされ、ssh-agentを介して接続をトンネリングするか、リモートまたはローカルでトンネリングすると、UDPがTCPセグメント内にカプセル化されることに気付くでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.