moshをさくらVPSで使う(Ubuntu12.04)

Moshという端末をリモートで操作するSSHの代替となるソフトウェアをちょっと使ってみたかったのでインストールをしてみた。

Moshは通信環境が不安定環境、例えばモバイル環境でも安定したリモート接続ができるようになるとのこと。さらにSSHよりも高速に動く。パソコンをスリープ状態にして復帰した時にリモートの接続が切れない、早くコマンドを打ったとしてもスクリーンが固まったりしないというのは便利なのです。

設定

まずSSHの設定がいるようなので、公開鍵とかを作る。

ホスト側で

ssh-keygen -t rsa "example@example.com"
#->このあとパス設定とかいろいろでる

作ったら安全のためscpを使ってリモート側に送る。

scp -2 id_rsa.pub username@hostname:scp_id_rsa.pub

### scp [オプション][転送したいファイル名][転送先のパス]
### [転送先のパス] は [username]@[hostname]:[path]
### [path]はディレクトリを省略するとホームディレクトリを示す

次はリモート側(Ubuntu)で

mkdir -p ~/.ssh 
chmod 700 ~/.ssh
cat scp_id_rsa.pub >> ~/.ssh/authorized_key

サーバーで鍵の追加が終わったらUbuntuMoshのインストールをしておく。

sudo apt-get install mosh

ポートの開放も必要なのでしておく。

sudo ufw allow 60000:61000/udp

これが終わったらホスト側で、Moshをインストールする。自分の環境がMacなので、Macbrewを使った設定をする。
Macの場合のインストールで気をつけないといけないのがbrew install moshとやるとSchemeインタプリタMoshがインストールされるので気をつけてインストールする。

# × まちがい
# brew install mosh

# ◯ せいかい
brew install mobile-shell

間違えてインストールした場合は

brew uninstall mosh

でアンインストールする。

Schemeインタプリタmoshを先にインストールしてしまうとアンインストールしても

mosh 1.2.3 already installed, it's just not linked

とか出てしまって、関連付けがうまくいかなかった。失敗してる場合は

brew link mobile-shell

とやって、関連付けを直す。

インストールが終わったら

mosh username@hostname

で接続できるみたい。

でも...

mosh requires a UTF-8 locale.
Connection to hostname closed.
/usr/local/bin/mosh: Did not find mosh server startup message.

( ゚д゚)………

はいはいlocaleが間違っているんですねっと

調べるためにUbuntu側でlocaleと打ってみる。

$ locale
↓
LANG=C
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=

はいUTF-8になってないと...。

utf-8にするために、検索で調べてみるとlanguage-pack-jaとかインストールすれば設定できるみたい。
Ubuntu側で、

sudo apt-get install language-pack-ja
export LANG=ja_JP.UTF-8
sudo update-locale LANG=ja_JP.UTF-8

/etc/ssh_config の PermitUserEnvironmentは見つけきれなかったのでやらなかった。

ロケール設定が終わったら、Mac側でmoshのコマンドを打つ。

mosh pogin@hostname
# -> [pogin@hostname ~]

セキュリティが心配な場合、接続ポートを限定したほうがよい。ポートを指定する場合は

mosh -p 60100 username@hostname

で特定ポートでmoshを使えるようになる。

(追記2013/3/5):他にポート指定のオプションのやり方は種類があるので、公式サイトのUsageのところを見れば良い。(どうもmoshファイアウォールの設定に影響されやすいっぽい)

これでmoshが使えるようになった。これならさくらのサイト上のリモートコンソールを使わずにシェルを使うことができる。なので非常に楽かつ、接続が切れても問題ないのが嬉しい。

SSHの設定とかはドットインストールという3分動画でマスターできる初心者向けプログラミング学習サイトでわかりやすく説明してくれてる。

ここでは他に、Apache, PHP,ファイアウォールなどの設定の講座をしてくれているのでスタートにはとても便利なものになってる。自分もドットインストールのビデオを見てPHPを動かせるところまでやってみようと思う。
http://dotinstall.com/lessons/basic_sakura_vps