基礎となる通信はveryssh -R6010:localhost:6000
...に似ていますが、SSHでのX転送はバックグラウンドでより多くの魔法を実行します。
たとえば、ポート6010でリッスンしているサービスがすでに存在する場合はどうなりますか? SSHは、空きポートが見つかるまで6011、6012 ..を試行します。
次に、リモートエンドでDISPLAY変数を設定する必要があります。ピックアップしたリモートポートに応じて、localhost:10.0
またはlocalhost:11.0
または...のいずれかになります。
次に、X認証(xauth
)を処理して、クライアントがローカルXサーバーが期待する正しいマジックCookieを送信するようにする必要があります...
最近のsshサーバーとクライアントでは、接続はTCPソケットではなく、UNIXドメインソケットとの間で行われる場合がありますが、概念は同じです。
基本的に、ssh
のXオプションは、Xセッションの多くの「ハウスキーピング」要件を処理します...トラフィックを転送します。