OpenSSH 資料一覧
XプロトコルをSSH転送する方法
2007/8/21更新
対応バージョン: 4
準備
まずSSHのサーバとなるマシン上でsshdを起動しておく。
XプロトコルのSSH転送をするためにはあらかじめsshdに以下の設定をしておく必要がある。
/etc/ssh/sshd_config
X11Forwarding yes X11DisplayOffset <num>
また、上記マシンにおいてXクライアントがXプロトコルのSSH転送を許すために以下の2通りのどちらかの設定をしておく必要もある。
各ユーザ毎の設定 (~/.ssh/config)
ForwardX11 yes
システムワイドの設定 (/etc/ssh/ssh_config)
ForwardAgent yes ForwardX11 yes
接続
設定が済んだらsshでサーバマシンに接続する。
ここではサーバマシンをserverとして説明する。
client% ssh server XXX@server's password: ********
接続が成功するとDISPLAY環境変数には自動的にserverのsshdが管理するXサーバ番号が割り当てられているのが確認できる。
ここでのXサーバ番号はsshd_configのX11DisplayOffsetで設定した
server% printenv DISPLAY DISPLAY=server:10.0 server% netstat -a Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 *.6010 *.* LISTEN :
この状態でxterm等のXアプリケーションを起動するとXプロトコルのデータはSSHによって(暗号化されて)トンネル接続される。
netstatで状態を見るとESTABLISHEDに変わっている。
server% netstat -a Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 server.6010 client.3301 ESTABLISHED :
リモートのXクライアントを起動するためにわざわざログインシェルを起動したくない場合はsshに-fオプションを付けてリモートで実行するコマンドを指定するとログインシェルがバックグラウンドで動作するので便利である。
client% ssh -f server xterm