元セブ島在住のエンジニアの僕「Tommy」が、プログラミング・英語・セブ事情を発信するブログ

Tommy's blog

【Linux】SSHリモート接続でサーバーのGUIアプリを使う【→レンタルサーバでも可能】

3月 23, 2020

プログラム女子
レンタルサーバーをSSHのターミナルで使っているんですが、サーバー側のGUIアプリケーションを使う方法ってありますか?
Linuxには、「X」というGUIアプリケーションをクライアントに画面を転送する機能があるので、それをSSHのターミナルから使う方法を説明するね。
Tommy

この記事で分かること

  • サーバーのアプリケーションウインドウを手持ちのPCに表示させる方法が分かる
  • サーバーの画面が手持ちのPCに表示されているか確認する方法が分かる

LinuxサーバーへSSHリモート接続する概要

私は、職業柄、WindowsPCを使って、Linuxサーバーにアクセスし、作業することが多くあります。もし、GUIが必要ない作業の場合、ターミナルで作業することが一般的です。

ここでは、WindowsPCからリモートでLinuxサーバーで作業する場合に、ターミナルでの作業から、LinuxサーバーのアプリケーションをWindowsPCに映し出す仕組みのXウインドウを使う方法を説明します。

ターミナル作業をする場合の、便利なコマンドについては、下記の記事で説明しています。ぜひ合わせて読んでみてください。

現在、多くの方がブログを作成されていますが、サーバーから借りてWordpressでブログを作成されている方も大勢いるのではないでしょうか。その場合、多くのレンタルサーバーはLinuxサーバーです。なので、自宅のパソコンがWindowsで、別途レンタルサーバーを借りている場合は、私と同じ作業環境になります。

レンタルサーバーでプログラミングする方法については、下記の記事で説明しています。

通常は下記のCygwinという仕組みをWindowsにインストールして使う仕組みが一般的に知られています。

しかし、多くの場合が、Cygwinの一部の機能しか使いません。LinuxのXウインドウ(Cygwin/X)の仕組みを使って、WondowsPCにLinuxのアプリケーションの画面を転送するだけならば、Cygwinの下記に一部の機能を使う為に、大きなCygwinをインストールすることになります。

そこで今回は、簡易的なLinuxサーバーへのアクセスであるSSHを使って、XウインドウをWindowsPCへ表示する方法を説明します。これによって、Cygwinなどの大きなサイズの仕組みをWindowsPCにインストールすることなく、もっと、軽量な仕組みでXウインドウを表示することができます。

Linuxサーバーにリモート接続する設定方法

WindowsPCからLinuxサーバーへリモート接続しようとしているとき、Linuxサーバーに対して、WindowsPC側のことを「クライアント」と呼びます。そして、WindowsクライアントからLinuxサーバーへリモート接続する為には、Windowsクライアント側でLinuxサーバーからの通信を受け付ける設定、Linuxサーバー側でに処理内容をクライアントに送信する設定する必要があります。また、Windowsクライントの設定として、どの種類やバージョンのサーバーOSと通信しようとしているのかを把握する必要があります。なので、大きく次の3つの設定を行う必要があります。

  • Linuxバージョンの確認
  • リモート接続のためのWindowsクライアント側の設定
  • リモート接続のためのCentOSLinuxサーバー側の設定

以降では、上記3つの設定手順を順番に説明します。

Linuxバージョンの確認

Linux環境に関する前提として、この説明はCentOS Linuxのバージョンの「7.3」を前提としています。Linuxのバージョンを確認するためにはファイル「/etc/redhat-release」を参照することで確認することができます。Linuxバージョンは次の手順で確認することができます。

  1. 「cat」コマンドを実行する
  2. 表示を確認する

1.「cat」コマンドを実行する

ファイル「/etc/redhat-release」の内容を簡易的に確認する為には「cat」コマンドを使います。「cat」コマンドは引数にファイル名を入力することで、ファイルの内容を表示するコマンドです。

$ cat /etc/redhat-release

引数にファイル名「/etc/redhat-release」を指定してコマンド「cat」を実行する。

2.表示を確認する

コマンド「cat」で表示された内容を確認します。今回のケースでは、CentOSの「7.3」が表示されているので、現在ターミナルで使用しているサーバーがCentOSのバージョンが7.3だったことが分かりました。

CentOS Linux release 7.3.1611 (Core) 

リモート接続のためのWindowsクライアント側の設定

Linuxサーバーとリモート接続する為には、WindowsPCが側でXウインドウを扱うツールがインストールされている必要があります。WindowsPCでXウインドウを使うために、「Xming」と「Xming-fonts」をインストールします。

次に、WindowsPCでLinuxサーバーをコマンドラインで操作する為のターミナルツールをインストールします。具体的には、WindowsPCでターミナル機能を「TeraTerm」をインストールします。メニューの「設定」から「SSH転送」を開き、「リモートのXアプリケーションをローカルのXサーバーに表示する」にチェックを入れます。

リモート接続のためのCentOSLinuxサーバー側の設定

ここでは、リモート接続する為に、サーバー側でどのような設定をしないといけないのかを説明します。具体的には、リモート接続する為のCentOS Linuxの設定は次の手順で行うことができます。

  1. ファイルを開く
  2. コメントアウトする
  3. コマンドを実行する
  4. 結果を確認する

1.ファイルを開く

「.bash_profile」というファイルを「vim」というテキストエディタで開きます。

$ vim .bash_profile

2.コメントアウトする

もし、環境変数「DISPLAY」が設定されていれば、コメントアウトしてログイン時に設定しないようにします。

export PATH
#export DISPLAY=localhost:0.0

3.コマンドを実行する

下のように「xeyes」というコマンドを実行します。

$ xeyes

4.結果を確認する

下のようなウインドウがWindowsPC側に表示されたら、成功です。これは「Xeyes」というサーバー側のアプリケーションで、ウインドウに表示された目が、手持ちのパソコンのマウスカーソルを追いかけます。

このようなサーバー側のアプリケーションを手持ちのPC上の表示させる仕組みを「Xウインドウ」と呼びますが、「Xeyes」はこの「Xウインドウ」を動作を簡単に確認する為に使います。