Ubuntu Weekly Recipe

第21回 リモートアクセス(1):リモートデスクトップとsshの利用

この記事を読むのに必要な時間:およそ 3 分

UbuntuからUbuntu (XDM)

VNCによるリモートデスクトップも便利ですが,ログインした状態を共有する,という動作の特性から,Windowsのリモートデスクトップのようにリモートログインを行って利用することはできません。こうした用途には,XDMCPを用いた接続を行うと良いでしょう。

設定は次のように行います。

まず,リモートコンピュータ側(リモートデスクトップを提供する側)のPCで,⁠システム⁠⁠→⁠システム管理⁠⁠→⁠ログイン画面]とたどり,ログイン画面の設定を開きます(ログイン画面の設定を開くにはある程度時間がかかるようです。すぐに反応がない場合は,数分程度待つ必要があるかもしれません⁠⁠。設定画面で「リモート」タブを開くと,初期状態では図6のように,⁠リモート・ログインを無効にする」という設定になっているはずです。この設定を「ローカルと同じにする」に修正しましょう。

図6 XDMCPによるリモートデスクトップの設定

図6 XDMCPによるリモートデスクトップの設定

図7 リモートログインを許可した状態

図7 リモートログインを許可した状態

また,ターミナルサーバクライアントは初期状態ではXDMCPに対応していませんので,xnestパッケージを導入します。以下のコマンドかSynapticから導入してください。

$ sudo apt-get install xnest

xnestを導入すると,さきほどターミナルサーバクライアント上で「VNC」が選べるようになったのと同様に,XDMCPを選べるようになります。

あとはVNCの場合と同じように,対象となるマシンのアドレスを入力し,接続を行えばログイン画面が表示されます。あとは通常のデスクトップ画面にログインするのと同様に,ユーザ名とパスワードを入力し,ログインしてください。

こちらはVNCと異なり,同じマシンに複数のユーザが接続して利用することができます。マシン側のメモリ搭載量にもよりますが,ローカルマシンの性能に不満がある場合などは,この方法で簡易シンクライアントとして利用することも可能です。

UbuntuからWindowsへの接続

Ubuntu環境からは,Windowsのリモートデスクトップ環境(RDP)へ接続することも可能です(標準状態のターミナルサーバクライアントは対Windowsのリモートデスクトップ接続のみをサポートしています⁠⁠。これは内部ではrdesktopコマンドを利用して接続しています。

利用法はVNCやXDMCPの場合と同じで,接続先マシンのユーザ名・パスワードを入力しておき,プロトコルとしてRDPを指定するだけです。後はWindows同士のリモートデスクトップと同じように操作できます。

Windows側の設定は,Windows同士でリモートデスクトップを利用するのと同じです。マイコンピュータ(Vista環境では「コンピュータ⁠⁠)上で右クリックし,⁠プロパティ]を開いて,⁠リモート」タブで「リモート デスクトップ」への接続を許可すれば良いでしょう。

筆者はWindows2000, Windows Vista, Windows Server 2003, Windows Server 2008で問題なく接続できることを確認しています。RDPは非常に優秀なリモートデスクトッププロトコルであるため,Ubuntu側のターミナルサーバクライアントの設定で「全画面」にしておくことで,ほとんどローカル環境と同じ速度で利用できるはずです。

Ubuntuをメインにした環境で,仮想マシンなどでWindowsを動かしている場合,RDPを用いて接続する方が快適なことがほとんどです。同じマシン上でWindowsを動かしている方は試してみてください。

WindowsからUbuntuへの接続

逆に,WindowsデスクトップからUbuntuへリモートアクセスを行う場合,一般的なVNCクライアントを利用すれば接続可能です。

TightVNCRealVNCなどのVNCクライアントをWindows環境に導入して接続してください。

VNCを利用する場合は簡単に接続できますが,その一方で,XDMCPを用いる場合はクライアント側にX環境が必要になります。XmingなどのXサーバをWindows上で動作させるのが簡便でしょう。

あるいは,andLinuxを用いてWindows上にUbuntu環境を構築するのも良い選択でしょう。今回のスクリーンショットの一部にはVistaのAero Glassが有効なウインドウが幾つか含まれていますが,これらはWindows VistaにandLinuxを導入した環境で取得しています。andLinuxにvinoとvncviewerをインストールすることで,UbuntuのターミナルサーバクライアントをWindows上で動作させています。

SSHによる接続

リモートデスクトップはデスクトップ画面を「そのまま」手元に引き寄せる形で利用しますが,場合によってはGUIは必要なく,単にターミナルだけが利用できれば良い場合もあるでしょう(Ubuntu上で何かをMakeする場合や,サーバを再起動する場合などです⁠⁠。

このような場合にはOpenSSHによるSSH接続を利用すると良いでしょう。この場合もやはり,グローバルIPアドレスが付与されているシステムでは安易に有効にするべきではありません。グローバルIPが付与される環境では,最低限パスワード認証を無効にする・接続ポートを変更する,といった処置を行う必要があります。

SSHを利用するには,アクセス先になるシステムにopenssh-serverパッケージを導入する必要があります。次のコマンドを用いるか,Synapticからインストールしてください。

$ sudo apt-get install openssh-server

インストールが完了した時点でSSHによる接続が可能になっています。クライアント側でターミナルを開き,ssh 《対象ホスト》と入力して接続してください。

X転送

SSH経由で接続した場合,各アプリケーションのGUIを手元に表示させることもできます。こうして起動したアプリケーションは,ローカルで起動したものとほとんと同じように動作します。

X転送を利用する場合,sshに-Xオプションを与え,ssh -X 《対象ホスト》と入力して接続してください。

著者プロフィール

吉田史(よしだふみひと)

Ubuntu Japanese Team Member株式会社創夢所属。システム管理を中心にWindows/PC Unixを併用している。Ubuntu Japanese Teamではパッケージサーバの管理や翻訳などの作業を担当。