序章

効率、セキュリティ、およびコマンドラインからすべてを実行する機能のために、多くのサーバーはグラフィカルユーザーインターフェイス(GUI)を使用しません。 ただし、ブラウザでWebサイトをテストしている場合や、フルデスクトップ環境(DE)でリモートアクセス可能なワークステーションをセットアップしようとしている場合など、リモートサーバーでGUIアプリケーションを実行したい場合があります。

Linuxまたは他の*nixバリアントを実行しているリモートコンピューター上のグラフィカルインターフェイスと対話するための一般的なソリューションは、Virtual Network Computing(VNC)です。 残念ながら、VNCは動作が遅く、デフォルトでは安全ではないことで有名であり、起動して実行するには多くの手動構成が必要です。

対照的に、X2Goにはいくつかの利点があります。

  • X2Goは、リモートマシンからVNCのようなコンピューターに画像を送信する代わりに、X(グラフィカル)サーバーとX11プロトコルの修正バージョンを使用して、クライアントとサーバー間で交換されるデータの量を最小限に抑えます。 これにより、ローカルに近いデスクトップエクスペリエンスが実現します。 この種のパフォーマンスの唯一の要件は、クライアントとサーバー間のネットワーク距離が大きすぎないことです。 クライアントマシンからサーバーにpingを実行する場合、ラウンドトリップ時間は100ミリ秒を超えてはなりません。 50msに近いことが最適であり、200msは許容できますが、それほど大きくはありません。
  • X2Goは、既存のSSHデーモンと連携し、十分にテストされた安全な認証メカニズムに依存しながら、クライアントとサーバー間のすべてのトラフィックを暗号化します。
  • X2Goは複雑な手動設定を必要としません。 セッションを設定し、XFCE、LXDE、MATEなどの一般的なデスクトップ環境を自動的に起動する方法を知っています。
  • VNCとは異なり、X2Goはログイン時に環境をセットアップするため、Xサーバーを常に実行したままにする必要はありません。 さらに、切断した後もセッションは実行され続けます。つまり、再接続すると、ローカルデスクトップの場合と同じように、セッションを終了したときにすべてが表示されます。
  • X2Goは、複数のログインセッション、デスクトップ、および独自の個別の環境にログインしたユーザーをサポートします。
  • デスクトップ環境全体の代わりに、X2Goで単一のグラフィカルアプリケーションを起動して、サーバーのより強力なリソースを活用しながらローカルマシンのリソースを節約し、タスクを一度に数日間リモートで実行したままにすることができます。

このような設定は、次の場合に役立ちます。

  • このタイプのデスクトップ環境が必要ですが、Linuxベースのオペレーティングシステムをローカルにインストールすることはできません。
  • あなたは旅行に行きますが、あなたのコンピュータを持って行くことができません。
  • インターネットサービスプロバイダーが提供する帯域幅はごくわずかですが、数十ギガバイトまたは数百ギガバイトのデータにアクセスする必要があります。
  • 一度に数週間または数か月間何かを処理するには、別のマシンが必要です。
  • あなたはチームで作業しており、誰もが単一のリモートデスクトップにアクセスする必要があります。
  • グラフィカルデスクトップ、高速インターネット、信頼性の高い電源、およびリソースをすばやくスケールアップおよびスケールダウンする機能の組み合わせが必要です。

このチュートリアルでは、UbuntuよりもDebianをお勧めします。これは、UbuntuのデフォルトのDEであるUnityの一部のバージョンがX2Goと互換性がないためです。 また、Ubuntuでは代替デスクトップ環境で問題が発生する場合があります。

同様に、XFCEをお勧めします。これは、実行に専用のビデオカードを必要とせず、X2Goとの互換性が向上するためです。 ただし、LXDE、Mate(合成が無効になっている)、さらに古いKDE、Unity、Cinnamon(いくつかの調整を加えたもの)も機能します。

最後に、Firefox( xrender がアクティブな場合(Debian 8ではデフォルト))、通常、X2Goでよりスムーズなエクスペリエンスを提供します。

このチュートリアルを実行すると、リモートで接続できるLinuxデスクトップが作成されます。このデスクトップには、DebianXFCEをローカルにインストールした場合とまったく同じユーティリティが含まれています。 さらに、ファイアウォールをインストールして構成することで、リモートデスクトップを保護し、悪用をより困難にします。

前提条件

このチュートリアルを開始する前に、次のものが必要です。

  • 1GBまたは2GBのRAMを搭載したDebian8x64インスタンス。 (1GBが最小で、2GBから始める方が安全で、4GBが最適です)。 接続するエリアにできるだけ近いサーバーの場所を選択してください。
  • sudo権限を持つユーザー。 このガイドに従うと、開始できます: Debian8を使用したサーバーの初期設定。

RAMが不足すると、アプリケーションはLinuxカーネルによって終了し、作業が失われる可能性があることに注意してください。 使用するプログラムが大量のRAMを必要とすることを知っているか気付いた場合は、ドロップレットの電源を切り、必要に応じてサイズを変更できます。

ステップ1—サーバーのファイアウォール

デスクトップ環境全体をインストールすると、多くの追加のソフトウェア依存関係と推奨事項が引き込まれ、そのうちのいくつかはネットワークポートを開こうとする可能性があります。 たとえば、多くのDEに含まれているCommon UNIX Printing System(CUPS)は、ポート631を開こうとする場合があります。 CUPSのようなサービスは自宅では便利かもしれませんが、サーバーをインターネット全体に公開したくないので、すべての着信接続をブロックすることをお勧めします。 唯一の例外はポート22で、SSHとX2Goで接続できるように開いたままになります。

サーバーを保護するために、Uncomplicated Firewall(UFW)を使用します。これは、初心者のミスが少なく、理解と管理が容易で、1つのポートへの接続のみを許可するという目標に適合しているためです。 iptablesやその他のより洗練されたファイアウォールは、よりきめ細かい詳細を必要とする高度で複雑なルールに適しています。 (一般的なコマンドのクイックリファレンスガイドについては、 UFW Essentials:一般的なファイアウォールルールとコマンドを参照してください。)

まず、UFWをインストールします。

  1. sudo apt-get install ufw

デフォルトでは、ファイアウォールはこの時点で非アクティブになっているはずです。 次の項目で確認できます。

  1. sudo ufw status verbose

結果は次のようになります。

Output
Status: inactive

この時点でステータスを確認することは、後ですべての着信接続をブロックするときにufwがアクティブである場合に、自分自身をロックアウトしないようにするために重要です。

UFWがすでにアクティブになっている場合は、次のコマンドで無効にします。

  1. sudo ufw disable

次に、デフォルトのファイアウォールルールを設定して、すべての着信接続を拒否し、すべての発信接続を許可します。

  1. sudo ufw default deny incoming
  2. sudo ufw default allow outgoing

そして、サーバー(ポート22)へのSSH接続を許可します。

  1. sudo ufw allow 22

ルールを設定したら、ufwをアクティブにします。

  1. sudo ufw enable

これは出力します:

Output
Command may disrupt existing ssh connections. Proceed with operation (y|n)?

yと入力し、ENTERを押してファイアウォールをアクティブにします。

問題が発生し、SSHアクセスがブロックされていることに気付いた場合は、DigitalOceanコンソールを使用してドロップレットにアクセスする方法に従ってアクセスを回復できます。

ファイアウォールを設置すると、サーバーへの入り口は1つだけになり、X2Goサーバーのグラフィカル環境をインストールする準備が整います。

ステップ2—デスクトップ環境のインストール

このチュートリアルでは、XFCEデスクトップ環境をインストールします。 これを実現するには2つの方法がありますが、必要なのは 1つ、つまり最小デスクトップ環境またはフルデスクトップ環境のいずれかを選択することだけです。

最小限のデスクトップ環境:小さなコアセットのパッケージをインストールし、後で必要なものを手動で追加してそれらの上に構築する場合は、xfce4を使用できます。メタパッケージ

メタパッケージには独自のソフトウェアは含まれていません。インストールする他のパッケージに依存するだけなので、コマンドラインで各パッケージ名を個別に入力しなくても、パッケージのコレクション全体を一度にインストールできます。

xfce4と、それをサポートするために必要なすべての追加の依存関係をインストールします。

  1. sudo apt-get install xfce4

フルデスクトップ環境:必要なすべてのコンポーネントを厳選するのではなく、ワードプロセッサ、Webブラウザ、電子メールクライアント、その他のアクセサリなどのデフォルトのパッケージセットをプリインストールしたい場合は、次に、task-xfce-desktopを選択できます。

ローカルPCの起動可能なDVDからDebianXFCEで取得するものと同様の完全なデスクトップ環境をインストールして構成します。

  1. sudo apt-get install task-xfce-desktop

グラフィカル環境がインストールおよび構成されたので、別のコンピューターからそれを表示する方法を設定する必要があります。

ステップ3—サーバーへのX2Goのインストール

X2Goには、リモートマシンでグラフィカルセッションを開始および管理するサーバーと、リモートデスクトップまたはアプリケーションを表示および制御するためにローカルコンピューターにインストールするクライアントの2つの主要コンポーネントが付属しています。

DebianではデフォルトのリポジトリにX2Goサーバーが含まれていないため、パッケージマネージャーの構成にリポジトリを追加する必要があります。

まず、X2Goの開発者の公開鍵をインポートします。 これは、秘密鍵で適切に署名されたパッケージのみをダウンロードしてインストールできるようにするためのセキュリティ対策です。

  1. sudo apt-key adv --recv-keys --keyserver keys.gnupg.net E1F958385BFE2B6E

次に、リポジトリをパッケージマネージャーの構成ファイルに追加します。

  1. echo 'deb http://packages.x2go.org/debian jessie main' | sudo tee /etc/apt/sources.list.d/x2go.list

これにより、ファイル/etc/apt/sources.list.d/x2go.listが作成され、deb http://packages.x2go.org/debian jessie mainという行が追加され、パッケージマネージャーに補足パッケージの場所が示されます。

使用可能なソフトウェアパッケージのデータベースを更新するには、次のコマンドを入力します。

  1. sudo apt-get update

そして最後に、サーバーにX2Goをインストールします。

  1. sudo apt-get install x2goserver x2goserver-xsession

この時点で、サーバーでこれ以上のセットアップは必要ありません。 ただし、セキュリティを強化するためにSSHパスワード認証が無効になっているため、ログインするすべてのマシンでSSH秘密鍵を使用できるようにする必要があることに注意してください。

これでサーバーのセットアップが完了し、exitと入力するか、ターミナルウィンドウを閉じることができます。 残りの手順では、ローカルマシンのクライアントに焦点を当てます。

ステップ4—X2Goクライアントをローカルにインストールする

ローカルマシンでWindowsを使用している場合は、http://code.x2go.org/releases/X2GoClient_latest_mswin32-setup.exeからクライアントソフトウェアをダウンロードできます。

ご希望の言語を選択してライセンスに同意すると、ウィザードがインストールプロセスの各ステップをガイドします。 通常、これらの手順で事前に入力または選択されたデフォルト値を変更する理由はありません。

macOSをローカルで実行している場合、クライアントソフトウェアはhttp://code.x2go.org/releases/X2GoClient_latest_macosx_10_9.dmgにあります。

.dmgファイルをダブルクリックして、著作権、ライセンス、およびX2Goクライアント実行可能ファイルを含むフォルダーを開き、実行可能ファイルをダブルクリックしてクライアントを起動します。

また、DebianまたはUbuntuを使用している場合は、次のコマンドを使用してX2Goクライアントをインストールできます。

  1. sudo apt-get install x2goclient

クライアントに関する追加情報が必要な場合、またはソースからビルドする場合は、X2Goの公式ドキュメントにアクセスしてください。

デスクトップクライアントがインストールされたので、その設定を構成し、X2Goサーバーに接続してリモートXFCEデスクトップを使用できます。

手順5—リモートデスクトップに接続する

X2Goクライアントを最初に開くと、次のウィンドウが表示されます。 そうでない場合は、左上のメニューでセッションをクリックし、新しいセッション…を選択します。

X2Go Client Screenshot - Creating a New Session

セッション名フィールドに、サーバーを区別するのに役立つ情報を入力します。 これは、複数のマシンに接続する場合に特に便利です。設定を保存すると、すべての名前がプログラムのメインウィンドウに表示されるためです。

サーバーの下のホストフィールドにサーバーのIPアドレスまたはホスト名を入力します。

SSH接続に使用したユーザー名をログインフィールドに入力します。

また、ステップ2でインストールしたものなので、セッションタイプとしてXFCEを選択します。

最後に、SSHキーを使用してサーバーにログインするため、ssh接続にRSA/ DSAキーを使用の横にあるフォルダーアイコンをクリックして、秘密キーを参照します。

今のところ、残りのデフォルト設定で十分ですが、ソフトウェアに慣れてくると、個々の設定に基づいてクライアントを微調整できます。

OK ボタンを押した後、画面の右上にあるセッション名を含む白いボックスをクリックして、グラフィカルセッションを開始できます。

X2Go Main Window - Session List

数秒で、リモートデスクトップが表示され、操作を開始できます。 最初のログイン時に、XFCEはデフォルトの設定または1つの空のパネルを使用するかどうかを尋ねます。 最初のオプションでは、画面の下部にドッキングされた長方形のパネルが作成され、いくつかの便利なアプリケーションショートカットが含まれます(例: ファイルマネージャ、ターミナルエミュレータ、ブラウザなど)。 このオプションは、アプリケーションランチャー、時計、シャットダウンメニューなどのユーティリティを含むトップパネルもデスクトップに追加します。

XFCEに既に精通している場合を除き、空のパネルを選択することは、最初から始めるため、より複雑になる可能性があります。 タスクバー、時計、事前設定されたスタートメニューはありません。 空のパネルにすべてを自分で追加するのはあなた次第です。

さらに、WindowsおよびLinuxベースのオペレーティングシステムでは、エクスペリエンスを向上させるために使用できる便利なキーボードショートカットがいくつかあります。

CTRL+ALT+Fは、フルスクリーンモードのオンとオフを切り替えます。 フルスクリーンモードでの作業は、ローカルデスクトップエクスペリエンスのように感じることができます。 さらに、他のキーボードショートカットは、ローカルOSではなくリモートOSによって取得されます。

CTRL+ALT+Mは、フルスクリーンモードの場合でも、リモートビューを最小化します

CTRL+ALT+Tはセッションから切断されますが、GUIはサーバー上で実行されたままになります。 これは、サーバー上のアプリケーションをログオフしたり閉じたりせずに切断するための簡単な方法です。 ウィンドウの閉じるボタンをクリックしても同じことが起こります。

最後に、リモートセッションを終了する方法は2つあり、そこで実行されているすべてのグラフィカルプログラムを閉じます。 XFCEのスタートメニューからリモートでログオフするか、画面の主要部分の右下隅にある円と小さな線(電源/スタンバイアイコンなど)でマークされたボタンをクリックすることができます。

最初の方法はよりクリーンですが、セッション管理ソフトウェアなどのプログラムを実行したままにする場合があります。 2番目の方法はすべてを閉じますが、プロセスが正常に終了できない場合は強制的に閉じる可能性があります。 いずれの場合も、先に進む前に必ず作業内容を保存してください。

X2Go Main Window - Terminate Session Button

最後に、必須ではありませんが、XFCEのコントロールパネルに移動し、電源設定に移動して、すべてのスタンバイ機能を無効にします。 デスクトップをしばらく使用しない場合、XFCEはスタンバイをトリガーしようとします。 サーバーは通常、この要求を受信しても何もしませんが、予期しない動作を完全に回避することをお勧めします。

結論

これで、常時オンラインでリモートアクセス可能なコンピューティングシステムのすべての利点を備えた、機能する「クラウドデスクトップ」ができました。

さらに一歩進んで、 gitリポジトリの作成、Eclipseなどのリモートコードエディタのインストール、またはWebアプリケーションのテスト用のWebサーバーの構成によって開発作業を一元化できます。 リモートデスクトップを優れたバックアップスキームと組み合わせて、作業環境をどこからでも利用できるようにし、データの損失から安全にすることもできます。

詳細については、X2Goの公式ドキュメントWebサイトにアクセスしてください。