今回はリモートデスクトップを実現するサーバー/クライアントであるX2Goの簡単な使い方を紹介します。
リモートデスクトップの現状
Ubuntu 14.04でリモートデスクトップを使用したい場合、どういう選択肢が考えられるでしょうか。
まずはデフォルトで使用できるVNCですが、仕様上LAN内で使用する分には良いものの、WANだと厳しいです。とはいえ、Ubuntu/Ubuntu GNOMEデフォルトのVNCサーバー実装であるvino-serverだと今使用している画面を飛ばすのにはとても便利です。第208回 で取り上げたxrdpはクライアントについてはあまり考えなくていいので便利ですが、開発スタイルがよくわかりません。14.04のリポジトリにあるのは0.6.0 ですが、現在は0.7 や0.8 の開発を終了してdevelブランチ で0.9を開発しているように見えます。しかし、リリースタグが打たれていないのでよくわかりません。これではLinuxディストリビューションで取り込めないのも無理はないと思います。
そこで今回注目したのはX2Go で、Ubuntuのリポジトリにサーバーはないものの、PPA でパッケージが公開されていますし、もともとNoMachine という製品のコアがGPL2で公開されていて、その派生なので筋が良いですし、SSHさえ使えればいいという簡便さとセキュリティを両立させているというのが特徴です。
第98回 で紹介したFreeNXもこのNoMachineの派生ですが、3まではGPL2だったものの4からはプロプライエタリ となり、FreeNXの開発も続けられてはいないようです。X2GoはFreeNXやその他のNoMachine派生と互換性がありそうだと考えがちですが、実際にはありません。よって、X2Goサーバーとクライアントを必ず使用する必要があります。
ただ、ひとつ大きな問題があり、gnome-session のバグでGNOME/GNOME Shell/GNOME Fallbackでは使用できず、今回はXubuntu 14.04を使用しました。
今回は第326回 で組んだPCをXubuntu 14.04にしてLAN内で検証しましたが、VPSにデスクトップ環境をインストールして使用する、などでも便利なのではないかと思います。ちなみにX2GoクライアントはVirtualBoxにインストールしたXubuntu 14.04です。なお、Xubuntu 14.04に関しては第324回 も参考にしてください。
インストール
サーバーでは、次のコマンドを実行してください。
$ sudo apt-add-repository ppa:x2go/stable
$ sudo apt-get update
$ sudo apt-get install x2goserver x2goserver-xsession
クライアントでは、次のコマンドを実行してください。
$ sudo apt-add-repository ppa:x2go/stable
$ sudo apt-get update
$ sudo apt-get install x2goclient
X2Goサーバーの設定はとくになく、インストールしたら自動的に起動します。もちろんSSHのポートを変更したい場合など、必要であればX2Goサーバー以外では設定が必要なことがあります。とくにVPSで使用する場合はポート22番から別のポートに変更し、ufw でlimit設定しておくと良いでしょう。
接続
Xubuntu 14.04だとWhisker Menuという呼称ですが、左上のメニューアイコンをクリックして表示されるジャンルの[インターネット]をクリックすると[X2Go Client]がありますので、これをクリックして起動してください。[ Session]タブの[Session]-[New Session]で設定ウィンドウを表示します。[ Session name]は任意の設定名を、[ Host]は接続先のホスト名、[ login]はログインするユーザー名、[ SSH port]はそのままSSHのポート番号を入力してください。今回の例(図1 )では、LANなのでavahiで名前を解決していますし、SSHのポートも変えていません。最後に一番下の[Session type]を[XFCE]にしてください。
図1 Sessionタブ
[Connection]タブは、今回はLANでの接続なので[Connecion speed]を一番右にしています(図2 ) 。
図2 Connectionタブ
[Settings]タブはとくに変更するところはないでしょう(図3 ) 。
図3 Settingsタブ
[OK]をクリックすると右側に先ほど設定した項目が表示されるので、これをクリックしてください。するとユーザー名とパスワードを入力する欄が左に表示されるので、パスワードを入力してください。これで接続できます。なお、解像度は通常のウィンドウと同じ方法で任意に変更できます。
デスクトップ共有
X2Goは通常別のセッションに接続します。これはxrdpでも同じですが、今表示している画面を飛ばす、ということはできません。ただし、サーバーにx2godesktopsharingというパッケージをインストールし、[ インターネット]-[X2Go Desktop Sharing]を起動します。表示されるインジケーターアイコンを右クリックし[Activate desktop sharing]をクリックすると有効になります(図4 ) 。クライアントの設定は、[ Session]タブで[Session type]を[XFCE]ではなく[Connect to local desktop]にするだけです。これで接続すれば今使用している画面を飛ばすことができます。しかし、筆者が確認したところでは日本語キーボードレイアウトだとキーマップがおかしくなってしまいました。どのあたりに不具合があるのかを追求することはできませんでした。
図4 [ Active desktop sharing]をクリックする
印刷
リモートで印刷したものを手元のプリンターから出力することができます。この手のリモートデスクトップには必須の仕組みですが、X2Goにももちろんあります。サーバーで次のコマンドを実行してください。
$ sudo apt-get install x2goserver-printing cups-x2go
メニューの[システム]-[プリンター]でプリンターの設定ツール(system-config-printer)を起動してください。[ 追加]をクリックして[デバイスを選択]ウィンドウを表示すると、[ Generic CUPS-X2Go]というデバイスがあるので、これを選択して[進む]をクリックしてください(図5 ) 。続いて[プリンターの説明]ウィンドウが表示されるので、お好みのプリンター名にしてください。Ubuntuで実行するのと違って何度もパスワードを入力する必要があるので若干手間です。あとは普通にアプリケーションから先ほど設定したプリンター名のプリンターで印刷すると、クライアントにPrintウィンドウが表示されるので、プリンターを選択して印刷を行ってください(図6 ) 。
図5 [ Generi CUPS-X2Go]を選択する。もしこれが表示されない場合はcupsサーバーを再起動してみよう
図6 印刷がうまく行くと、クライアントでこんなダイアログが表示される
共有フォルダー
これもリモートデスクトップによくある機能ですが、手元のフォルダーをリモートに認識させることができます。
X2Goクライアントの[Session]-[Session management]でセッション管理ツールを起動し、現在使用しているセッション名を選択してから[Session preferences]をクリックします。[ Shared folders]タブをクリックし、[ Add]の左にあるフォルダーアイコンをクリックし、フォルダーを選択するダイアログを表示します。ここで共有するフォルダーを選択し、[ Choose]をクリックするとフォルダーのパスが表示されるため、[ Add]をクリックしてください。通常は自動的にマウントされるほうが都合が良いので、[ Automount]にチェックを入れます(図7 ) 。
図7 共有フォルダーの設定例
問題はサーバーのどこにマウントされるかですが、「 /tmp/.x2go-( ユーザー名)/media/disk/(マウントするフォルダーの前に“ /” ではなく“ _” が付いたフォルダー)/」と言うちょっとわかりにくいところにマウントされます。ファイルマネージャーのThonarをうまく使用し、ショートカットを作っておくと良いでしょう。