久々の更新となるが、備忘録を兼ねてlinuxネタをちょっと書いてみる。
リモートホストのXウィンドウをローカルへ引っ張ってくるなんて最近はほとんどしなくなった。
たまたまCOBALT CUBE改へlubuntuをインストしていて、久々にそうした方が便利な状況になったのでやってみたら全然できない。orz
どうもtelnet + XFree86の頃とは勝手が違うようだ。
環境はローカル:Ubuntu12.04、リモート:lubuntu14.04。
ローカル側で "xhost +" で接続を許可し、sshでリモートへ接続し "export DISPLAY=自分のホスト:0.0" と環境変数を設定。続いてリモートでXアプリを起動すると、
Error: Can't open display: 自分のホスト:0.0
とエラーになる。ディスプレイ番号が違うのかと色々試したがダメ。色々調べるとssh経由では根本的にやり方が違う。Xでの直接転送ではなくsshで転送するためsshデーモンの設定が必要なことが分かった。
1)sshの設定
リモートホスト側の /etc/ssh/sshd_config の設定を確認する。
X11Forwarding yes →yesとなっていること
X11DisplayOffset 10 →これがDISPLA番号
2)環境変数DISPLAYの確認
リモートホスト側で "echo $DISPLAY" を叩くと次のようにローカルを指していること。
localhost:10.0
3)リモートアプリの起動
引数で "-display hogehoge:0.0" のように指定はしない。そのまま起動させる。
例えば "xeyes &" のように。
するとリモート側のポート6000 に X11DisplayOffset値10が加わった6010がsshでローカルへ転送されてローカルディスプレイに表示される。
4) Mozilla Firefox の場合
これはちょっと勝手が違う。リモート側で "firefox &" などと起動させるとローカルのFirefoxが立ち上がってしまう。これを防ぐにはリモートホスト側で "export MOZ_NO_REMOTE=1" と環境変数を設定する。
すると、リモートのfirefoxの画面をちゃんと引っ張ってこれるようになる。
5)リモートXでの日本語入力
これもssh接続するとまっさらなのでリモートホストで環境変数を設定する。自分の環境のインプットメソッドはibusなので次のようになる。
"export XMODIFIERS=@im=ibus"
これで続けてアプリを起動すれば日本語入力が可能になる。
今回は以上これだけ。
※コメント投稿者のブログIDはブログ作成者のみに通知されます