こんばんは。今日はせっかくの休暇だったのに風邪引いちゃったよ。一人暮らしで風邪ひくとやたら惨めったらしい気分になるよね。
さてさて、えーっと、サーバにはsshじゃなくてmoshで接続してる。moshってのはMobile Shellのことで、sshの置き換え用として開発された次世代のsshのようなもの。今日は簡単なTipsになるけど、そのmoshのインストールとか使い方、メリットなどについて。



メリット

わかりやすくまとめてくれている方がいらっしゃいました。

おれが恩恵にあずかってるのは、ラップトップ持ったまま外出する時かな。ウチの会社はオフィスが複数箇所にあって、MTGなどがあるといったん外に出なきゃならなかったりする。どこぞのサーバにssh接続したままラップトップを持ってオフィスの外に出てしまうと、当然sshコネクションが切れる。しかしmoshで接続していれば大丈夫。ネットワーク接続可能な環境に入ると、勝手に接続が復活して、そのまま作業を続けることができる。わざわざIDとパスワードを打ち込んで再接続しなおさなくてもOK。

これはノマド的に働くエンジニアにとって嬉しいと思う。大量のサーバに接続した状態でカフェ移動しても大丈夫だし、WiFiが劣悪な場所でも安心。

インストール

クライアントとサーバ両方にインストールが必要。クライアントサイドは次の通り。Macならhomebrewでbrew install mobile-shell一発で入る。

1
2
3
4
5
6
7
8
9
10
11
12
13
brew install mobile-shell

# IO::Ptyはmoshコマンド実行時に必要。とりあえずcpanから入れる。
cpanm IO::Pty
# ↑他にも必要なものあるかも。もしかしたら。
# おれのマシンにはPerlの開発環境が入ってるからか、これだけ入れればOKだったけど。

# ↓は個人的なオマケ設定。moshコマンドでもsshコマンドの補完をできるようにする。
vim ~/.zshrc
-----------------------
compdef mosh=ssh
-----------------------
source ~/.zshrc

サーバサイドは次の通り。CentOSの場合epelから入れられる。

1
2
# epelを有効にした上で↓のコマンドを叩く。
yum install mosh

moshによる接続

インストールするだけで接続可能になる。サーバ側でなんらかのプロセスを立ち上げる必要もない(強いて言うならsshが上がってる必要がある。moshは認証にsshを利用するので。)。接続にはUDP 60000〜61000が使われるので、ファイアウォールやNW機器などでこのレンジを空けておくこと。

1
2
3
4
5
6
7
8
# sshの場合↓のようにして接続してると思うが
ssh -i ~/.ssh/aws-key.pem ec2-user@xxx.xxx.xxx.xxx

# moshの場合↓のようにする
mosh --ssh="ssh -i ~/.ssh/aws-key.pem" ec2-user@xxx.xxx.xxx.xxx

# 鍵認証ではなく、password認証なら普通に↓のように。
mosh user@xxx.xxx.xxx.xxx

おわり。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Set your Twitter account name in your settings to use the TwitterBar Section.