moshの紹介は以下にあります。
Moshを使ってみるよいのは次のような点です(上記のblogから引用させていただきます)。
http://rcmdnk.github.io/blog/2014/06/30/computer-linux-mac/
- Moshは特にMobile端末からsshでどこかのサーバーへ接続して ネットワークがとぎれとぎれ担ってしまうような場合にも 接続を維持できる様に(自動で再接続)してくれるプログラムです。
- 接続認証にはsshを使いますが、サーバー側、クライアント側両側で プログラムを動かして別のポートを使って接続を行い、維持するようにします。
- これらのプログラムは
mosh
コマンド実行時に自動的にスタートするので、 サーバー側でも先に動かしておく必要はありません。
変更の経緯は簡単に以下にまとめています。
FreeBSDでconvmvを使ってファイルシステムのファイル名をEUCからUTF-8へ変換するMacでのインストールは、上記のblogにあるように、
http://www.sakashita-net.jp/2015/04/freebsdconvmveucutf-8.html
- homebrewをインストールする
- brew install mobile-shellを実行
# cd /usr/ports/net/mosh動作は、まずFreeBSDとMacOS Xでターミナルから自分のホストにログインしてみて試しました(sshでのログインなどが可能になっていることが前提です)。
# make
# make install
これがうまくいったので、次は、MacOS Xから自宅のサーバーへのログインです。
自宅のサーバーはNATの中にあるので、 インターネット接続用ルーターにポート転送の設定が必要です。moshはsshにポートに加えて、60000〜61000番のUDPポートを使います。
Mosh (mobile shell)この60000~61000番のUDPポートをサーバーに転送するように設定します。たとえば、ix2105では以下のようにします。
https://mosh.mit.edu/
…
Mosh will log the user in via SSH, then start a connection on a UDP port between 60000 and 61000.
…
interface GigaEthernet0.1このようにしておいてから、MacOS Xから自宅サーバーへログインしてみます。
ip napt service mosh サーバーIPアドレス none udp 60000-61000
macosx$ mosh ユーザー名@自宅サーバーssh接続ができているならこれでよいはずです。 sshのポートなどを変更している場合は、以下のように、mosh内部で利用しているsshコマンドへの引数を指定できます。たとえばsshのポート番号を指定したい場合には、以下のようにします。
…
自宅サーバー$
mosh --ssh="ssh -p 2222" ホスト