web-dev-qa-db-ja.com

ssh -Xはどのように機能しますか?

ssh -Xを使用する場合、実行可能ファイルがコピーされてローカルで実行されるか、ホストマシンで実行されます。これはX11フォワーディングと呼ばれているため、ウィンドウはマシン上に描画されていると思いますが、ホスト上で実行されています。

9
Steve Burdine

実行可能ファイルはリモートマシンで実行され、ローカルマシンに表示(描画)されます。 ssh -X remoteは、リモートマシンでプロキシX11サーバーを起動します。リモートマシンでecho $DISPLAYを実行すると、localhost:21.0のようなものが表示されます。これは、リモートマシンで実行されているプログラムに、ID 21のX11サーバーに描画コマンドを送信するように指示しています。これにより、ローカルマシンで実行されている実際のX11サーバーにコマンドが転送され、画面に描画されます。この転送は暗号化されたssh接続を介して行われるため、(簡単に)聞くことはできません。

WindowsやMac OSなどとは異なり、X11は最初から、リモートデスクトップなどを必要とせずにネットワーク経由でプログラムを実行できるように設計されています。しばらくの間、X11シンクライアントが人気でした。これは基本的に、X11サーバーのみを実行するストリップダウンしたコンピューターです。すべてのプログラムは、どこかのアプリケーションサーバーで実行されます。

17
KeithB

アプリケーションは、ローカルで実行されているXコンポーネント(つまり、xコマンドのレンダリングなど)を除いて、リモートで実行されます。すべてのクライアントアプリケーションは通常、ローカルXサーバーを使用してUIを表示します。この場合、コマンドは暗号化されたSSHチャネルを介してリモートマシンからローカルマシンに送信され、そこで表示されます。

1
txwikinger

設定$DISPLAYは契約の半分にすぎません。サーバー側のクライアントを認証できるようにするために、sshxauthも使用して新しい認証Cookieを作成します。見る xauth listおよび~/.Xauthority

0
al.

重要なのは、Xサーバーがユーザーにグラフィックスを提供する単一のものであり、グラフィックスを必要とするすべての異なるプログラムがXクライアントであり、サーバーに接続する必要があることを認識することです。クライアントプログラムとXサーバー間のインターフェースは、ローカルマシン上のものだけでなく、リモートプログラムとの接続をサポートするように最初から設計されました。

クレイジーなネットワークでは、プログラムはどこでも実行でき、そのグラフィックを他のどこにでも表示できます...

0
Kevin Cantu