利用手順
ステップ | 実行場所 | コマンド例 | 説明 |
---|---|---|---|
1 | ホスト(表示側) | xhost +192.168.0.2 |
リモートホストにX接続を許可 |
2 | リモートホスト | export DISPLAY=192.168.0.1:0 |
X出力先をホストに指定(ホストのIP + ディスプレイ番号) |
3 | リモートホスト | xclock & |
GUIアプリケーションを起動 |
利用手順
1-a. ホスト(表示側)で xhost
による接続許可
192.168.0.1(ホスト)
# 例: 192.168.0.2 がリモートホスト
$ xhost +192.168.0.2
- 目的: 指定したリモートホストに、X サーバ(ローカルの画面)への接続を許可する
-
+
のあとにホスト名
またはIPアドレス
を指定 (+
は省略可) - セキュリティ上、可能ならば限定的に行う(
xhost +
は誰でも接続できて危険)
1-b. ホスト(表示側)でxauth
による接続許可(セキュアな方法)
192.168.0.1(ホスト)
# 現在の X 認証キーを確認
$ xauth list
# 例: UNIX:0 MIT-MAGIC-COOKIE-1 abcdef1234567890...
# ホストの MIT-MAGIC-COOKIE をファイルにエクスポート
$ xauth extract /tmp/xauthkey :0
# このファイルをリモートホストにコピー(scpなど)
$ scp /tmp/xauthkey user@192.168.0.2:/tmp/
- 目的: より安全にX接続を認証ベースで制御する
-
xauth
はMIT-MAGIC-COOKIE-1
認証方式を用いて、許可されたクライアントのみ接続を許可 -
xhost
のようなホスト単位での全開放を避けられる
2. リモートホストで DISPLAY
環境変数を設定
192.168.0.2(リモートホスト)
# 例: 192.168.0.1 がホスト(表示側)
$ export DISPLAY=192.168.0.1:0
- 目的: X アプリケーションが「どのディスプレイ(Xサーバ)」に出力すべきかを指定する
-
192.168.0.1
はホスト(表示側)のIPアドレス -
:0
: 最初のディスプレイ番号 -
:1
: 2番目のディスプレイ番号
3. リモートホストでXアプリケーションを起動
192.168.0.2(リモートホスト)
$ xclock &
- 目的: アプリケーションのGUIを、ローカルの画面に表示
-
DISPLAY
に設定されたアドレス宛てに描画要求が送られる
補足: ssh経由でより安全に行う方法(推奨)
# ホストから ssh -X でログイン(-Yは信頼できるX転送)
$ ssh -X user@192.168.0.2
# リモート側からGUIアプリを起動
$ xclock &
-
-X
/-Y
オプションで SSHが自動的にDISPLAYを設定 してくれる -
xhost
不要、安全性が高い