ほとんどの人は、SSHを介してログインしたコンピュータにウィンドウを転送できるようにしたいです。私はその逆をしたい。
私はデスクトップからSSH経由でサーバーにログインしています。サーバーは本質的にメディアセンターで、その画面は私のテレビです。 SSHセッションで開始できるようにしたいchromium-browser
が、ローカルコンピュータではなくサーバーに表示されるようにします。
ただ実行すると動作chromium-browser &
せず、Gtk: cannot open display
エラーが発生します。 「ディスプレイを独自にエクスポートするには」サーバーで環境変数を設定する必要がありますか?
答え1
はい、XプログラムはDISPLAY
環境変数を使用してディスプレイをどこに送るべきかを特定します。 SSHを使用している場合は、SSH接続をクライアントシステムに転送するようにDISPLAY
環境を自動的に設定できます(これで確認できます)。ローカルコンピュータで実行されているXサーバーがないと、リモートプログラムはディスプレイを開くことができないと文句を言います。DISPLAY
echo $DISPLAY
次のコマンドを使用して、ローカルに接続されたモニターからブラウザを明示的に起動できる必要があります。
env DISPLAY=:0 chromium-browser &
:0
「ローカルエリア接続表示番号0」の略です。
答え2
リモートシステムで実行されているXサーバーが存在し、表示するように構成されているものを知る必要があります(例:DISPLAY = localhost:1)。
SSHを介してサーバーに入り、表示変数をエクスポートします。
export DISPLAY=localhost:1
その後、GUIを起動します。
答え3
sshには独自のX転送機能もあります。 sshd.confのX11Forwarding Onディレクティブを使用して設定する必要があるかもしれません。この場合、デフォルトの DISPLAY 環境変数があり、X11 という DISPLAY プログラムが SSH 接続を介して渡され、暗号化されます。次に、NATの背後にXアプリケーションを取得できます。
答え4
とにかくDISPLAY変数を正しく設定することに加えて、ssh -X(または-Y)スイッチを使用して...ホストがリモートデータを正しく表示することを許可されていますか?
xhostコマンドを使用して、リモートホストにモニターに情報を送信する権限があることを確認してください。