XをSSH経由で転送してプログラムをリモートで実行する
1. 概要
セキュアシェル(SSH)は、ローカルLinuxシステムでリモートプロセスを実行するための便利なツールです。 必然的に、 SSH を使用しているときに、ローカル画面にリモートシステムからのグラフィカルインターフェイスを表示する必要が生じます。 X11ポートフォワーディング/トンネリングは、これをシームレスかつ安全に促進します。
この記事では、X11ポートフォワーディングを構成する方法を学習します。
2. X転送構成
わかりやすくするために、サーバーとクライアントという用語を使用して、それぞれリモートとローカルLinuxシステムを参照します。 X転送が機能するには、サーバーがXサーバー認証を実行できる必要があります。 さらに、サーバーシステムとクライアントシステムの両方でX転送を有効にする必要があります。これらの各手順を詳細に実行する方法を見てみましょう。
2.1. Xサーバー認証
X転送が機能するようにするには、サーバーにxauthがインストールされていることを確認する必要があります。 xauth ユーティリティは、UNIXシステムでのXサーバー情報の認証を処理します。 インストールされているかどうかを簡単に確認しましょう。
$ which xauth
/usr/bin/xauth
幸い、xauthはほとんどの標準的なLinuxシステムにインストールされています。 セクション3では、必要に応じてインストールする方法を説明します。
2.2. サーバーでのX転送の有効化
サーバー側でX転送を有効にするには、X11Forwardingキーワードとyes引数を/etc / ssh /sshd_configスクリプトに追加するだけです。
X11Forwarding yes
2.3. ローカルシステムでのX転送の有効化
サーバーでX転送を有効にすると、追加の-Xオプションを指定して通常のSSHコマンドを実行できるようになります。
ssh -X username@server
これで、プロセスがリモートサーバーで実行されている間に、ローカルシステムのグラフィカルインターフェイスを簡単に操作できます。
または、ForwardX11キーワードを使用するコマンドの明示的なバージョンを作成することもできます。 サーバー側で使用したX11Forwardingと比較して、クライアント側で使用されるこのForwardX11キーワードの違いに注意してください。
$ ssh -o ForwardX11=yes username@server
さらに、SSH を実行するたびにX転送をデフォルトの動作として設定するには、SSH構成ファイルを編集しましょう。 〜/ .ssh / config ファイルを作成し、ForwardX11キーワードをファイルに追加します。
FowardX11 yes
SSHを使用してローカルLinuxシステムでリモートGUIを表示するために必要なのは、上記の情報だけです。
3. X転送エラーの診断
ここでは、X転送構成の実行時に診断エラーに使用できるいくつかの方法を特定します。
3.1. xauthをインストールしています
xauth のインストールは簡単です、まだインストールされていないまれなケースです。 たとえば、サーバーがDebian / Ubuntu Linuxを実行していると仮定すると、xauthを簡単にインストールできます。
sudo apt-get install xauth
同様に、Fedoraなどの他のLinuxディストリビューションでもyumを使用できます。
$ yum search xauth
$ yum install xorg-x11-xauth
3.2. 表示がありません
まず、サーバー上でDISPLAY環境変数を設定する方法を理解しましょう。コンテキストとして、Linuxシステムは次のラベルが付いた複数のディスプレイを実行できることに注意してください。 0以降の整数。 たとえば、cどのディスプレイがすでに設定されているかを確認しましょう。
$ echo $DISPLAY
:0
この場合、X11サーバー認証は、最初の(番号0で示される)ローカル表示を使用するように設定されています。 リモートディスプレイの場合、クライアントシステムのIPアドレスがコロンのプレフィックスとして表示されます。
$ echo $DISPLAY
client:10
ただし、できます
$ X11DisplayOffset 10
一方、場合によっては、すべてのディスプレイをリモートで使用するように設定したい場合があります。 サーバー上でこれを行うには、X11UseLocalhostキーワードを/etc / ssh /sshd_configにno引数を指定して追加します。
X11UseLocalhost no
このエラーおよび関連するエラーの詳細については、ここを参照してください。
4. 結論
この記事では、X転送を使用して、サーバーにSSH接続するときにグラフィカルユーザーインターフェイスをリモートで表示する方法について説明しました。 このプロセスはほとんど簡単です。 さらに、構成中に表示の欠落などの問題が発生した場合に備えて、いくつかの診断トリックも確認しました。