リモートVM上のMATLABをX11のGUIで起動
かなりニッチな話だが,自分とその他もろもろの人に向けて log.学校の VM 上にインストールされた MATLAB を GUI で立ち上げるための tip.VM に学内ネットワークからしかアクセスできず,学外から学内ネットに接続できる踏み台サーバなどがあることが前提.
※ 動作が重いので,どうしてもグラフィカルな実行結果を見たいでもない限り非推奨.数値だけの実行結果であれば -nodisplay オプションをつけて MATLAB を起動すればサクサク.
以下,その方法.
(1) VM と踏み台サーバに RSA 秘密鍵でログインできるようにする
やり方がわからない人は,この辺を参考に.
walkingmask.hatenablog.com
(2) ローカルPCの ~/.ssh/config を作る
まだ無い場合は,自分のPCのホームディレクトリ直下の .ssh ディレクトリの直下に config というファイルを作成.拡張子は無しで,パーミッションもそのままでおk.下のコマンドをコピペすればできる.
touch ~/.ssh/config
(3) config ファイルに,踏み台サーバと リモート VM について以下のようにする
Host humidai HostName humidai.hogehoge.co.jp User walkingmask IdentityFile ~/.ssh/humidai_rsa Host humidai_to_vm HostName vm.hogehoge.co.jp User walkingmask IdentityFile ~/.ssh/vm_rsa ProxyCommand ssh humidai -W %h:%p
Host の右に書いてある humidai や humidai_to_vm は任意に書き換えておk.User は自分のユーザ名,IdentityFile は,それぞれの接続先に対応した秘密鍵のパスを記述.一番重要なのは,VM 用の記述の一番下に書いてある ProxyCommand の部分で,これをつけることによって humidai からVM にオプションを引き継いだまま ssh 接続ができる.
(4) 書いて保存したら,config の VM 用に記述した部分の Host に対して,次のようにsshで接続する
ssh -X -C humidai_to_vm
( -X が X11 を使えるようにするオプション. -C はデータ圧縮とかなんとか)
これで,RSA 鍵のパスフレーズ を入力して VM に繋がれば,MATLAB を GUI で起動できるはず.
おまけ
以上で GUI は起動できるようになったはずだが,接続するたびに上記のコマンドを打つのは面倒だと思うので,シェルの設定ファイル ( ~/.zshrc や ~/.bashrc など) に,以下のような記述をしておくとコマンドを使うように一発で接続できる.
alias evm='ssh -X -C humidai_to_vm'
evm は任意の文字列で構わないが,すでに存在するコマンドと被らないように.これで,ターミナルなどで evm と入力するだけで,オプション付きで VM に接続できる.さらに,次のように -t オプションを用いることで,接続後に実行するコマンドを与えることも可能.
alias eee='ssh -X -C humidai_to_vm -t "cd ~/workspace; bash --login"'
これは,接続したら workspace ディレクトリに移動して,bash を利用するように指定している.
その他,一連のシェルコマンドを一つのコマンドにする方法はこちら.
walkingmask.hatenablog.com