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

ただし、できますリモートディスプレイで使用されているXサーバーがサーバーのメインX11ディスプレイに干渉しないことを確認してください。 通常、サーバーはこれをデフォルトで設定しますが、 X11DisplayOffset のキーワード / etc / ssh / sshd_config サーバー上のスクリプト:

$ X11DisplayOffset 10

一方、場合によっては、すべてのディスプレイをリモートで使用するように設定したい場合があります。 サーバー上でこれを行うには、X11UseLocalhostキーワードを/etc / ssh /sshd_configno引数を指定して追加します。

X11UseLocalhost no

このエラーおよび関連するエラーの詳細については、ここを参照してください。

4. 結論

この記事では、X転送を使用して、サーバーにSSH接続するときにグラフィカルユーザーインターフェイスをリモートで表示する方法について説明しました。 このプロセスはほとんど簡単です。 さらに、構成中に表示の欠落などの問題が発生した場合に備えて、いくつかの診断トリックも確認しました。