前書き

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

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

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

  • VNCのようにリモートマシンからコンピューターに画像を送信する代わりに、X2GoはX(グラフィカル)サーバーとX11プロトコルの修正版を使用して、クライアントとサーバー間で交換されるデータ量を最小限に抑えます。 これにより、ローカルに近いデスクトップエクスペリエンスが得られます。 この種のパフォーマンスの唯一の要件は、クライアントとサーバー間のネットワーク距離が大きすぎないことです。 クライアントマシンからサーバーにpingを送信する場合、往復時間は100ミリ秒を超えてはなりません。 50ミリ秒近くが最適で、200ミリ秒は許容できますが、大きくはありません。

  • X2Goは既存のSSHデーモンと連携し、クライアントとサーバー間のすべてのトラフィックを暗号化すると同時に、十分にテストされた安全な認証メカニズムに依存します。

  • X2Goは複雑な手動設定を必要としません。 セッションをセットアップし、XFCE、LXDE、MATEなどの一般的なデスクトップ環境を自動的に起動する方法を知っています。

  • VNCとは異なり、X2Goはログイン時に環境を設定するため、Xサーバーを常に実行したままにする必要はありません。 さらに、切断した後もセッションは継続して実行されます。つまり、再接続すると、ローカルデスクトップの場合と同じように、セッションを終了したときにすべてのものが見つかります。

  • X2Goは、複数のログインセッション、デスクトップ、および独自の個別の環境にログインするユーザーをサポートします。

  • デスクトップ環境全体ではなく、X2Goで単一のグラフィカルアプリケーションを起動し、ローカルマシンのリソースを節約しながら、サーバーのより強力なリソースを活用し、タスクを数日間リモートで実行することもできます。

このようなセットアップは、次の場合に役立ちます。

  • このタイプのデスクトップ環境が必要ですが、Linuxベースのオペレーティングシステムをローカルにインストールすることはできません。

  • 旅行に出かけますが、コンピューターを持ち歩くことはできません。

  • インターネットサービスプロバイダーが提供する帯域幅はごくわずかですが、数十または数百ギガバイトのデータにアクセスする必要があります。

  • 一度に数週間または数か月間何かを処理するには、別のマシンが必要です。

  • チームで作業しており、誰もが単一のリモートデスクトップにアクセスする必要があります。

  • グラフィカルデスクトップ、高速インターネット、信頼性の高い電源、リソースを迅速に拡大縮小する機能の組み合わせが必要です。

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

同様に、専用のビデオカードを実行する必要がなく、X2Goとの互換性を高めるため、XFCEを推奨しています。 ただし、LXDE、Mate(合成を無効化)、さらに古いKDE、UnityおよびCinnamon(いくつかの調整を加えたもの)も機能します。

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

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

前提条件

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

  • 1 GBまたは2 GBのRAMを備えたDebian 8 x64インスタンス。 (1GBは最小で、2GBは最初から安全で、4GBが最適です)。 接続するエリアにできるだけ近いサーバーの場所を選択します。

  • sudo特権を持つユーザー。このガイドに従うと、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-8 [Debian 8での初期サーバーセットアップ]が開始されます。

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

手順1-サーバーのファイアウォール

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

サーバーを保護するために、Uncomplicated Firewall(UFW)を使用します。これは、初心者のミスによるエラーが少なく、理解および管理が容易であり、1つのポートへの接続のみを許可するという目標に適しているためです。 iptablesおよびその他のより洗練されたファイアウォールは、より詳細な詳細を必要とする高度で複雑なルールにより適しています。 (一般的なコマンドのクイックリファレンスガイドについては、https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands [UFW Essentials:Common Firewall Rules and Commands]を参照してください。)

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

sudo apt-get install ufw

デフォルトでは、この時点でファイアウォールは非アクティブになっている必要があります。 あなたはと確認することができます。

sudo ufw status verbose

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

OutputStatus: inactive

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

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

sudo ufw disable

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

sudo ufw default deny incoming
sudo ufw default allow outgoing

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

sudo ufw allow 22

ルールを設定したら、 `+ ufw +`を有効にします。

sudo ufw enable

これは出力されます:

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

「+ y 」と入力し、「 ENTER +」を押してファイアウォールを有効にします。

問題が発生し、SSHアクセスがブロックされていることを発見した場合は、https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-console-to-access-your-dropletをフォローできます[DigitalOcean Consoleを使用してドロップレットにアクセスする方法]アクセスを回復します。

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

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

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

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

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

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

sudo apt-get install xfce4

*フルデスクトップ環境:*必要なすべてのコンポーネントを選択するのではなく、ワードプロセッサ、ウェブブラウザ、メールクライアント、その他の付属品などのデフォルトのパッケージセットをプリインストールする場合は、選択できます`+ task-xfce-desktop +`。

ローカルPCの起動可能なDVDからDebian XFCEを使用する場合と同様の完全なデスクトップ環境をインストールして設定します。

sudo apt-get install task-xfce-desktop

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

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

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

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

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

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

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

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 +」が追加され、パッケージマネージャーに補足パッケージを見つけるため。

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

sudo apt-get update

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

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クライアントをインストールできます。

sudo apt-get install x2goclient

クライアントに関する追加情報が必要な場合、またはソースからビルドしたい場合は、http://wiki.x2go.org/doku.php/download:start [X2Goの公式ドキュメント]にアクセスしてください。

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

ステップ5-リモートデスクトップへの接続

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

image:http://assets.digitalocean.com/articles/how-to-setup-a-remote-desktop-with-x2go-on-debian-8/create-new-session.png [X2Go Clientスクリーンショット-の作成新しいセッション]

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

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

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

そして、これはステップ2でインストールしたものなので、*セッションタイプ*として「+ XFCE +」を選択します。

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

現時点では残りのデフォルト設定で十分ですが、ソフトウェアに慣れてきたら、個々の設定に基づいてクライアントを微調整できます。

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

image:http://assets.digitalocean.com/articles/how-to-setup-a-remote-desktop-with-x2go-on-debian-8/main-window.png [X2Goメインウィンドウ-セッションリスト]

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

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

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

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

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

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

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

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

image:http://assets.digitalocean.com/articles/how-to-setup-a-remote-desktop-with-x2go-on-debian-8/terminate-session.png [X2Goメインウィンドウ-セッション終了ボタン]

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

結論

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

さらに一歩進めるには、https://www.digitalocean.com/community/tutorials/how-to-create-a-pull-request-on-github [gitリポジトリの作成]、インストールによって開発作業を集中化することができます。 Eclipseなどのリモートコードエディター、またはhttps://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-debian[configuring a web server] for Webアプリケーションのテスト。 リモートデスクトップとhttps://www.digitalocean.com/community/tutorials/how-to-choose-an-effective-backup-strategy-for-your-vps [良いバックアップスキーム]を組み合わせて確認することもできます。あなたの作業環境はどこからでも利用可能であり、データ損失から安全であること。

詳細については、https://wiki.x2go.org/doku.php [X2Goの公式ドキュメントWebサイト]をご覧ください。