どこかで流行ってるらしい mosh, 今更ながら入れてみたのでメモ。今までは mosh の利点は理解してても自分の利用ケースに該当しないなーと思ってたけど、最近はネットワークが良く切れたりテザリング使ったりとかいろいろあるので試しに使ってみたらかなり良い感じだった。
mosh というのはどんなのかというと、SSH代替のターミナルソフトウェアで、IPが変わってもクライアントスリープしてもネットが切れてもシームレスに繋がるようにしたような、そんなターミナルソフト。認証には ssh を使うし、mosh 自体はデーモンで動く必要なく、ssh でつなげた後に自動で実行される。なので root 権限なくても使えたりする。
インストール
サーバとクライアント、両方で行う必要がある。
サーバ側
サーバはVPSにあるCentOSを使用した。
$ sudo yum install mosh
これだけで終わった。
ただし mosh はポート番号の60000-61000番を使用するので、サーバの環境によってはネットワーク周りの設定をする必要がある。serversman@vps では何も必要無かったが、さくらのVPSではポートを開けてやる必要がある。
さくらの VPS にモバイル時代の SSH の代替品 Mosh をインストールしてみた - A Day in Serenity @ kenjisクライアント
VirtualBox上のUbuntu12.04です。
apt からでもインストールは可能ですが -ssh オプションが使えなかったのでソースからインストールしています。
$ git clone https://github.com/keithw/mosh
$ cd mosh
$ ./autogen.sh
$ ./configure
checking for protobuf... no
configure: error: Package requirements (protobuf) were not met:
No package 'protobuf' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
$ sudo apt-get install libprotobuf-dev
$ ./configure
$ make
$ sudo make install
途中必要なパッケージが無いと言われたので protobuf だけ別途入れた。
使ってみる
mosh コマンドにアドレスを渡すだけで繋がるはず。自分のサーバーはポート番号を変更してるので --ssh オプションをつけてて以下のような感じになった。 --ssh オプション内では ssh コマンドと同じように記述すれば良いらしい。
$ mosh --ssh="ssh -p 12345" example.com
ps してみる
$ ps aux | grep mosh
ryomatsu 3709 49.2 0.2 17092 5448 ? R 11:53 0:02 mosh-server new -s -c 256 -l LANG=en_US.UTF-8
ちゃんとmoshが動いてる。