SSHのX11Forwarding を使ってセキュアなリモートでGUIを操作する
SSHポートフォワード と VNC を使ってセキュアなリモートデスクトップを使ってみる では、SSHのポートフォワードとVNCを使ってセキュアなリモートデスクトップを扱ってみました。
SSHのX11Forwarding を使って、リモートでGUI操作を行ってみます。
X11 Forwardingとは、
X11 の転送 というのが直訳です。つまりは、X Window Systemは、X11プロトコル(通信手順)を元に構築されます。そのX11プロトコル(通信手順)の電文情報をサーバー、クライアント間で転送するということです。
サーバー側の(CentOS)の環境設定
SSHのX11Forwarding を許可するように設定します。
デフォルトでは許可になっているはずですが、確認も含めて設定しておきましょう。
/etc/ssh/sshd_config を編集します。
...
X11Forwarding yes
...
|
編集を終えたら、再読み込みを実施します。
$ /etc/init.d/sshd reload
sshd を再読み込み中: [ OK ]
|
これで、サーバー側の設定は終わりです。続けて、今度はクライアント側になります。
SSHのX11関連情報は、以下のものがあります。
- X11Forwarding : X11転送の許可。(default:yes)
- X11DisplayOffset : X11が転送するディスプレイ番号。(default:10)
- X11UseLocalhost : X11 をlocalhost のみ許可。(default:yes)
全てデフォルトでOKのはずなんですが、
X11Forwardingぐらいは確認しておきましょう。
SSH(クライアント)の環境設定
SSHの接続には、Cygwin-Xを用います。
X11プロトコルに対応したxtermから、サーバーへ接続しなければなりません。
そのために必要な無償ソフトウェアは、Cygwinが最も有名でしょう。
そのCygwinのXtermを含めたX Window Seerver をCygwin-Xと呼んでいます。
- Cygwin-X , CygwinのSSH をインストールします。
cygwin の setup.exe を起動します。
( cygwin の setup.exe は、http://cygwin.com/setup.exe からダウンロードできます。 )
インストールするX11をチェックし、Install状態にします。
( カテゴリのX11をチェックします。 )
X11と同じように、インストールするOpenSSHをチェックし、Install状態にします。
( カテゴリは、Netになります。 )
設定を終えたら、[ 次へ ]をクリックし、画面に従いインストールを実行します。
- Cygwin-Xを起動し、SSH接続します。
Cygwin-Xインストールが完了したら、WindowsのスタートボタンからCygwin-Xを起動します。
[ スタート ] – [ プログラム ] – [ Cygwin-X ] – [ XWin Server ] でCugwin-Xを起動します。
上記は、Windows XP のクラシックメニューです。他のOSではイメージが違いますので、注意してください。
以下のようにxtermが開いたら、SSHでサーバーへ接続します。
[~] $ ssh -X taro@11.22.33.44
password:
...
...
[taro@11.22.33.44] $
|
SSHのパラメータは以下のような意味になります。
-X : X11 forwarding を有効にして接続します。
taro@11.22.33.44 : ログインユーザ名@サーバー名(or IPアドレス)
また、タスクバーにXServerのアイコンが表示されます。
右クリックでメニューが表示されます。emacsなどもインストールできていれば、起動することができます。
- Xウィンドウの簡単が画面を表示してみます。
Xウィンドウの簡単が画面 xeyes , xclock を表示してみます。
[taro@11.22.33.44] $ xeyes &
|
[taro@11.22.33.44] $ xclock &
|
どうでしょうか?表示できましたか?
おまけ GNOMEのデスクトップを表示してみる
SSHのX11Forwardingを使ってGNOMEを表示させるには、GNOMEディスプレイマネージャ(gdm) が必要になります。
サーバー側で、gdm をインストールした後、クライアントからます。
- [サーバー] GNOMEディスプレイマネージャ(gdm) をインストールします。
サーバー側にGNOMEディスプレイマネージャ(gdm) をインストールします。
$ yum install -y gdm
...
$ gdm-restart
$
|
- [クライアント] GNOME を表示してみます。
クライアント側で Cygwin-X を使ってSSH接続し、GNOME を表示してみます。GNOMEを表示する際にgdmflexiserverを使います。
[taro@11.22.33.44] $ gdmflexiserver --xnest --no-lock
|
–xnest : Xnextモード
–no-lock : スクリーンロックしない
以下のようにログインユーザ画面が表示されます。ユーザ名を入力し、[ OK ]ボタンをクリックします。
ログインパスワード画面が表示されます。パスワードを入力し、[ OK ]ボタンをクリックします。
正しくログインできれば、GNOMEのデスクトップ画面が表示されます。
gdmのセッティングをしたい場合は、gdmsetup を起動するとセッティングできます。ただし、管理者権限のあるユーザでないと設定できません。
[taro@11.22.33.44] $ gdmsetup &
|
ログイン時の画面設定は、以下のように設定できます。
また、セキュリティタブでは、rootのログインの許可なども設定できます。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
関連記事 :
2013年11月22日, 3:49 PM
sshd_configのX11Forwardingはデフォルトnoだろう。
man sshd_configすればすぐ分かるんだから、
それぐらい調べて公開してほしいな。
2013年11月22日, 3:55 PM
認証絡みが全然書いてないけど、
xhost +
か
xauth add
しないでほんと大丈夫?
2013年11月22日, 6:01 PM
通りすがりさん
コメントありがとうございます。管理人です。
んーーっ、ですね、お叱り痛み入ります。
sshd_config については書いているんですが、分かり難かったですかね、見直しておきます。
認証絡みについては、つめこみ過ぎると分かり難くなりますから、初心者向けのとっかかりの記事としては、ここでは止めておきます。
また、お気づきに点がありましたら、コメントいただけるとうれしく思います。