Mosh
Mosh(the mobile shell)は sshの様にサーバーに接続し作業が出来、 さらにネットワークが切れた状態になってもネットワークが復旧し次第 再接続して同じ状態から作業が開始できる様になるツールです。
実際には、まずsshでサーバーに接続し、そこでmosh-server
を立ち上げ、UDP経由で
クライアント側から接続します。
なのでsshの代わりになる、というわけではなく、sshによるアクセスが出来ることが前提になります。
また、UDPポートをいくつか開放しておかないといけません。 (デフォルトでは60000-61000を使います。)
なので外部からのアクセスの制限が強い場合にはこの辺の準備をする必要がある場合があります。
サーバー側では当然sshdのサービスは走っている必要はありますが、
moshに関しては何も走らせておく必要はありません。
mosh-server
コマンドがインストールされてればOKです。
ユーザーローカルのディレクトリにインストールしても使えるので
サーバーの管理者権限がなくてもサーバーにインストールして使うことが出来ます。
(ポート開放とかファイアウォールはやってもらわないと駄目ですが。)
使い勝手としては
$ ssh [email protected]
とする代わりに
$ mosh [email protected]
とするだけなので完全にssh間隔で使えます。
今回起こった問題
問題については以下に書いてあります。
簡単に言うとmosh-server
コマンドが立ち上がらなくなりmoshによる接続ができなくなった、という話。
現状
自分でコンパイルとかしてなんとかしようと思って上手くいきませんでしたが、 現在はアップデートによって最新版にすれば問題はおこならないようになっているみたいです。
$ uname -a
FreeBSD xxx.xxx.xxx 11.2-STABLE FreeBSD 11.2-STABLE #33 r338991M: Fri Sep 28 14:10:47 JST 2018 [email protected]:/usr/obj/usr/src/sys/GENERIC amd64
$ pkg version -v|grep -e mosh -e protobuf
mosh-1.3.2_11 = up-to-date with remote
protobuf-3.9.1,1 = up-to-date with remote
$ pkg info mosh
mosh-1.3.2_11
Name : mosh
Version : 1.3.2_11
Installed on : Wed Aug 28 17:44:17 2019 JST
Origin : net/mosh
Architecture : FreeBSD:11:amd64
Prefix : /usr/local
Categories : net
Licenses : GPLv3
Maintainer : [email protected]
WWW : https://mosh.org/
Comment : Mobile terminal that supports intermittent connectivity
Shared Libs required:
libprotobuf.so.20
Annotations :
FreeBSD_version: 1102503
repo_type : binary
repository : poudriere
Flat size : 688KiB
Description :
Remote terminal application that allows roaming, supports intermittent
connectivity, and provides intelligent local echo and line editing of
user keystrokes.
Mosh is a replacement for SSH. It's more robust and responsive,
especially over Wi-Fi, cellular, and long-distance links.
WWW: https://mosh.org/
$ pkg info protobuf
protobuf-3.9.1,1
Name : protobuf
Version : 3.9.1,1
Installed on : Wed Aug 28 17:44:01 2019 JST
Origin : devel/protobuf
Architecture : FreeBSD:11:amd64
Prefix : /usr/local
Categories : devel
Licenses : BSD3CLAUSE
Maintainer : [email protected]
WWW : https://github.com/protocolbuffers/protobuf
Comment : Data interchange format library
Shared Libs provided:
libprotobuf-lite.so.20
libprotoc.so.20
libprotobuf.so.20
Annotations :
FreeBSD_version: 1102503
repo_type : binary
repository : poudriere
Flat size : 22.4MiB
Description :
Protocol Buffers are a way of encoding structured data in an efficient yet
extensible format. Google uses Protocol Buffers for almost all of its internal
RPC protocols and file formats.
WWW: https://github.com/protocolbuffers/protobuf
見てみるとOS自体のアップデートはなくて、moshとprotobufの両方がアップデートされています。
- OS: 11.2-STABLE FreeBSD 11.2-STABLE #33 r338991M
- mosh: 1.3.2_9 1.3.2_11
- protobuf: 3.8.0.1 3.9.1.1
protobufのアップデートのおかげ?
とりあえずこの環境では直ったみたいなので、もし同じようにFreeBSD環境でmosh-serverが上手く使えない場合は
もし管理権限があれば
pkg upgrade
とかでパッケージを最新にすれば解決されるかと思います。