XDMCPでMacからLinuxに接続する
ESXiでLinuxを動かしていると、管理コンソールであるVMware vSphere Clientからコンソールを開いてLinuxにログインしなければいけない。vSphere ClientはMacでは動かないから、別のWindows機を起動している。Macはいつも起動させているので、計3台のPCが起動していることになる。なんとかLinuxぐらいはMacから接続できるようにならないかと考えたところ、実は研究室にいた頃に、CygwinからLinuxのXを呼び出して接続していたことを思い出した。研究室でやっていたことが役に立つなんて初めてのことかもしれない。もちろん研究内容とは全く関係ないので、研究自体が役に立っているわけではない。
接続方法
接続方法は大きくわけて3つある。
- sshでターミナルから接続
- sshのX forwardingでアプリの画面だけをMac側に持ってくる
- XDMCPでデスクトップの画面を丸ごとMac側に持ってくる
自分の要望としては3のデスクトップを丸ごと持ってくる方法なので、まずはXDMCPを設定する。
XDMCPの設定
ログイン先のLinuxにsshで接続。gdmの設定ファイルを変更して、XDMCPによるログインを許可する。
[xdmcp]セクションのEnableをtrueに変更する。
これでリモート側の設定はひとまず完了。
Macからの接続方法
ターミナルからのコマンドは
これを実行すると、X11が起動してリモートログイン画面が表示される。僕の環境(OSX 10.6.1)だとコマンドを実行しても、X11のアイコンをクリックするまではログイン画面が表示されない。そして、CPUの使用率が100%に近いことに気がついた。Core2Duoなので、もう一個分残ってはいるけど、なんでこんなに使ってるのか分からない。
キーボードを叩いてみると
Linuxにログインして、キーボードを叩いてみると、キーアサインがでたらめなことに気がつく。仕方ないので、xevを使って、ひとつひとつ確認していく。
実行するとEvent Testerというウインドウが表示される。このウインドウにフォーカスを当てたままキーを押すと、押したキーのキーコードと現在割り当てられているキーが分かる。で、全部のキーを確認する。確認したあとは、xmodmapでキーの割当を変更する。
これで割当は完了だが、このままだとShiftやControlキーなどがうまく機能しない。そこで、
を実行して、shiftキーやcontrolキーの関連づけを行う。これをシェルスクリプトとしておいて、ログイン時に実行する。実行権限付けるのを忘れないように。
ログイン場所によって分ける方法は?
WindowsのvSphere Clientからログインする場合はキーコードの再割当は必要ないけど、Macからログインする場合は再割当が必要になる。なので、どこからログインしたかによって、実行するスクリプトが制御できたら、とても便利。さて、どうやってやるんだろう?これはもうちょっと調べてから。