読者です 読者をやめる 読者になる 読者になる

walkingmask’s development log

IT系の情報などを適当に書いていきます

MENU

リモートVM上のMATLABをX11のGUIで起動

かなりニッチな話だが,自分とその他もろもろの人に向けて log.学校の VM 上にインストールされた MATLABGUI で立ち上げるための 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 に繋がれば,MATLABGUI で起動できるはず.

おまけ
以上で 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