ござるのブログ

覚え書きいろいろ

iCloudのどこでもMy MacでMosh (mobile shell)を使う

はじめに

iCloudどこでもMy Macを使うと、こちらで紹介されているように、出先から自宅のMacSSHでログインできます。今回はさらに「SSHよりも高速」というMoshを、どこでもMy Macで使えるようにします。Moshの仕組みについては、こちらが詳しいです。

Moshのインストール

サーバとクライアントの両方のMacMoshの最新版をインストールします。Homebrewを使えば簡単です。

$ brew install --HEAD mosh

これでSSHで接続する時と同様にクライアントから

$ mosh hoge@fooMac.999999999.members.btmm.icloud.com

などとすれば、サーバに接続できそうな気がするのですが、

/usr/local/bin/mosh: Could not resolve hostname fooMac.999999999.members.btmm.icloud.com
ssh_exchange_identification: Connection closed by remote host
/usr/local/bin/mosh: Did not find remote IP address (is SSH ProxyCommand disabled?).

と言われてうまくいきません。そこで、こちらに書かれているようにクライアント側のmoshコマンドを以下のように修正します。1行加えるだけです。

--- /usr/local/opt/mobile-shell/bin/mosh.orig   2014-12-05 13:18:17.000000000 +1100
+++ /usr/local/opt/mobile-shell/bin/mosh        2014-12-05 13:23:49.000000000 +1100
@@ -36,6 +36,7 @@
 use strict;
 use Getopt::Long;
 use IO::Socket;
+use IO::Socket::INET6;

 $|=1;

これで

$ mosh -6 hoge@fooMac.999999999.members.btmm.icloud.com

とすれば、サーバに接続できるようになりました。