FreeBSDとMacOS Xでmoshを使う上記の設定で、MacOS Xのターミナルで開いたコマンド行からは使えるようになりました。次は、ターミナルのプロファイルに登録して使うようにしてみます。
http://www.sakashita-net.jp/2015/05/freebsdmacos-xmosh.html
ターミナル.appの設定を開き、プロファイルを追加します。この中の[シェル]タブの起動欄で
- コマンドを実行にチェックを入れる
- 入力欄には「mosh ユーザー名@ホスト名」
- 文字エンコーディング: Unicode(UTF-8)
- 起動時にロケール環境変数を設定にチェック
- Unicode東アジアA(曖昧)の文字幅をW(広)にするにチェック
[コマンドが見つかりません:mosh]となってしまいます。 その下の「シェル内で実行」をチェックしてから起動すると、今度はうまくいきます。しかし「シェル内で実行」の場合、リモートのホストからログアウトすると、手元のMacのシェルに戻ってしまいます。できれば、sshのようにターミナル.appのウィンドウが閉じられて欲しいところです。入力欄で
[新しいプロセスを作成して擬似 tty を開くことができませんでした。]
mosh ユーザー名@ホスト名 && exitとして回避することはできますが、ややいまいちです。
「コマンドが見つかりません:mosh」と出ているので、ターミナル.appが内部で保持するPATH環境変数にmoshがインストールされているディレクトリ /usr/local/bin が含まれていないのかもしれません。そこで、起動するコマンドを
/usr/local/bin/mosh ユーザー名@ホスト名とし、「シェル内で実行」の チェックを外してから起動してみると、今度はうまくいきます。
sshのポート番号を変えている場合は
/usr/local/bin/mosh --ssh="ssh -p 2222"としたいところですが、
/usr/local/bin/mosh: Server-side port or range (10022") is not valid.となりうまくいきません([シェル]タブで、「シェル終了時:ウィンドウを閉じない」と設定しておくとエラーメッセージを見ることができます。)。
内部でうまくコマンド行をパースできていないのかもしれません。なのでsshに対するオプションはMacOS X側の~ユーザ/.ssh/configファイルで
Host ホスト名などと設定する必要があります。
Port 2222
p.s. 上記の記述は、システム環境設定/言語と地域/優先する言語で「日本語」を最優先としている場合です。ここで「English」を最優先にしている場合には、以下の設定が必要です。
- ターミナル.appの設定で「起動時にロケール環境変数を設定」のチェックを外す
-
/etc/launchd.confを作成し、以下のように記述する
setenv LANG en_US.UTF-8
- システムワイドなロケール設定 ~ Mac OS X (その2)
http://d.hatena.ne.jp/flying-foozy/20140204/1391520123 - launchd で Homebrew を自動アップデート
http://kymmt90.hatenablog.com/entry/launchd_brew - launchd で Homebrew を自動アップデート(Yosemite 編)
http://kymmt90.hatenablog.com/entry/launchd_brew_yosemite - Setting locales correctly on Mac OSX Terminal application
http://blog.remibergsma.com/2012/07/10/setting-locales-correctly-on-mac-osx-terminal-application/
LC_CTYPE環境変数がUTF-8となってしまうようだ。正しくはen_US.UTF-8。