スポンサーリンク
ノートPCからSSH接続していると、移動時(スリープ時)に再接続が必要になってしまったり、ちょっと面倒でした。そんな中、途中でWi-Fiから別のWi-Fiに回線を変更したり、スリープなどで接続(回線)が切れても、何事も無かったよう継続して利用できるSSHの代用ツール「Mosh」を導入したので、紹介します。
スポンサーリンク
Mosh
Moshは、公式サイトに言わせれば、「Mosh is a replacement for SSH」です。
Moshの大ざっぱな仕組み(自分理解)を説明します。
まずSSHクライアントの代わりに、手元マシンで動かすのはMoshクライアントになります。
そしてその、Moshクライアントは、既存のSSHを利用して、Moshサーバへのログインを行います(SSHを使うのはこの最初だけ)。
それ以降、SSH接続時に交換した認証鍵を利用して、MoshサーバとMoshクライアントの間だけで通信(UDP)し、その通信では、SSHでは不便だった、接続が切れてしまったり、IPアドレスが変わるようなネットワーク環境の変化があっても、裏側で勝手によろしくやってくれて、ユーザは意識せず、端末を継続して利用できる、というような仕組みです(知らんけど)。
インストール
「CentOS mosh install」あたりでGoogle検索するといろいろソースコードからビルドする方法が出てきます。
が、結局次のコマンドでインストールできました。
$ sudo yum install mosh
インストールされたのは、以下のパッケージ。
mosh 1.2.4-1.el6 protobuf 2.3.0-9.el6
protobufは、ProtocolBufferです。
mosh server を起動?
ここで、mosh serverを起動しておかないと、と思ってしまったのですが、その必要はありません。難しい。
実は、moshクライアントがSSHを内部で使ってサーバに接続するときに、自分でmoshサーバを起動してくれます。
- SSHを使ってログインする
- mosh serverを起動する
- mosh接続する
つまり、サーバー側でのmosh serverの起動は、クライアント主導で行われる、というわけ。
公式のusageにサーバを起動しておく系のコマンドが見当たらないのはそのためです。
なので、もうこれで、サーバ側の準備は終了です(逆に言えば、SSHサーバはちゃんと起動しておく必要がある)。
使い方
で、クライアントはどうするの?という話ですが、Windowsでは、「MobaXterm」が始めから mosh に対応しているので、「おすすめの高機能SSHクライアント「MobaXterm」の使い方(基本編)」の手順序盤で「SSH」を選ばず「Mosh」を選択すれば、OKです。
あとは普通に、SSHの認証情報を設定してください。
実際に使って感じる効果
SSHからMoshに移行したことで、PCをスリープしたり、ネットワークが一時的に切れる環境を使ったり、無線LANの接続先を切り替えたりしても、何事も無かったかのように、SSHして、再接続作業を行うことなく、継続してSSH接続を利用できるようになりました。
主張してくるタイプの便利さではありませんが、たぶん通常のSSHに戻ってみたら、また切れた、と面倒さをかなり感じることになると思います。
スポンサーリンク
スポンサーリンク