Mosh Mobile SSH - モバイル用に自動再接続してくれるSSH


Mosh』はモバイル回線など通信が不安定なときにも、SSHをかなり快適にしてくれるアプリケーションです。移動が多い人や、スリープから復旧したときにターミナルの接続が再開されるようにしたい場合などに超オススメです!

アルバイトを10秒で探せるiPhone/Androidアプリ Short.Works」の開発にもめっちゃ役に立っています!


🚜 Moshとは

Moshはモバイル回線など回線が不安定なときにも、快適にSSHができるツールです。

* IPアドレスが変更されても接続が継続する
* サーバー接続途中でPCをスリープモード => 復帰でも自動で再開
* SSHの設定(~/.ssh/config)をそのまま使える

など至れりつくせりなツールです!

🐝 Moshのインストール

Mac側のインストールはこちら。

brew install mobile-shell

CentOSへのインストールはこちら。

yum install mosh

Ubuntuへのインストールはこちら。

sudo add-apt-repository ppa:keithw/mosh
sudo apt-get update
sudo apt-get install mosh

🗻 UDPのポート解放

Moshを使う場合はUDPのポート60000-61000を解放しておく必要があります。
(実際には1セッションごとに1ポート使うので最大同時接続数が10セッションで足りるなら10個でいいそう)

AWSの場合はセキュリティグループの設定を変更。

ipテーブルsを変更する場合は、

# centos(redhat系)
vi /etc/sysconfig/iptables
# ubuntu
vi /network/if-pre-up.d/iptables

として、以下を追加。

-A RH-Firewall-1-INPUT -p udp -m udp --dport 60000:61000 -j ACCEPT

その後に、sudo /etc/init.d/ipテーブルs restartでipテーブルsを再起動。

🐰 接続方法

まずはいつ戻おり、~/.ssh/configにこんなかんじでサーバ設定。
(SERVER_NAME, SERVER_IP, PORT_NUMBER, SSH_KEY_PATH, USER_NAMEは自分の接続先似合わせて変更)

Host SERVER_NAME
Hostname SERVER_IP
port PORT_NUMBER
IdentityFile ~/.ssh/vps_rsa(SSH_KEY_PATH)
User USER_NAME

完了したら、次のコマンドを実行すればsshとほぼ同じように接続できます!

mosh SERVER_NAME

ライフハック!

😀 おまけ: Moshのコネクションをクローズする

サーバで次のコマンドを実行するとMoshのコネクションをクローズできます!

kill `pidof mosh-server`

参考: ssh - How do I reattach to a detached mosh session? - Stack Overflow

🐡 参考リンク

Sakura VPSにmoshで接続するための設定

moshを使ってリモート接続する

SSHの代わりになるかもしれない「Mosh」を使ってみました

Ubuntu と Mac に mosh 入れてみた

📚 おすすめの書籍