callstack

プログラミングでいろいろやる

Moshの接続簡易化スクリプトを書いた

Mosh

最近,リモートマシンで作業するのにSSHではなくMoshを使っています.
スリープ復帰時の自動接続はとても便利です. ただ少し接続が面倒だったので簡易化するスクリプトをメモ.

他のブログ等でよく書かれているやり方では,

  1. リモートマシンでmosh-serverを実行
  2. 出力のMOSH_CONNECTの行からポートとキーをコピー
  3. クライアント側でexport MOSH_KEY=<コピーしたキー>を実行する
  4. クライアント側でmosh-client 接続先IP <コピーしたポート>

という手順を踏んで接続します.
mosh-serverは60秒間接続が無いと死ぬので,60秒以内に上の作業をやる必要があります.
途中で手間取るとmosh-serverが落ちて最初からやり直し...

書いた

できればsshみたいに使いたいのでこんなものを書いた.

  • moshup.sh
#!/bin/sh

if [ $1 = '-h' -o $1 = '--help' ]; then
  echo 'Usage: ./moshup.sh username@ip_addr'
  exit
fi

MOSH_SV_EX='mosh-server'
MOSH_CL_EX='mosh-client'

remote_host=$1
ip_addr=`echo $remote_host | cut -d'@' -f2`

moshout=`ssh $remote_host $MOSH_SV_EX`
data=`echo $moshout | grep 'MOSH CONNECT' | cut -d' ' -f3,4`
set -- $data
port=$1

export MOSH_KEY=$2
$MOSH_CL_EX $ip_addr $port

実行は

./moshup.sh hogehoge@xxx.xxx.xxx.xxx

おわり

卓越したタイピングスキルと操作精度があれば普通の方法でもよいかも.
あと他の楽な接続方法が多分あると思うので教えていただけたらうれしいです.