不安定な接続でも使えるリモート・シェルのプロトコル


概要

Mobile Shellの名のとおり、不安定な接続でも使えるリモート・シェルのプロトコル。 接続を切っても続きを操作できるという意味では、vncを使った方が楽なのだが、 ネットワーク帯域やサーバーのメモリー資源を無駄に使ってしまうのは問題だ。

現時点でポート転送やX11の対応は無いが iPhone や iPad / Android からコンソールレベルでエディタを使って操作したりするのには使えそうだ。screenコマンドと組み合わせて使えば、vncのような使い方も可能。

問題点

  1. &記号をつけてバックグラウンドで起動させたx11vncコマンドを起動すると、終了するまでログアウトできない
  2. iPhone/iPad + iSSH + mosh で切断せずにいると電池の消耗が激しい
  3. cygwin + mosh 1.2.3 でsshのポート番号を変えたサーバーに接続できない? → moshコマンドを入れ替えればOK
  4. cygwin + mosh + teraterm + emacs で Backspace を押すとヘルプが出てしまう → teratermの設定でBackspace=DELとすれば問題ない
  5. iPhoneから iSSH + mosh で使う場合、キー入力が多い場面で何らかの対策をしないと使いにくい → ホスト名の bash-complete を使う
  6. クライアントが切断処理をしないままクラッシュしてしまうと mosh-server プロセスが残骸として残り続けてしまう。kill したくてもどれが残骸のプロセスなのか分からない
  7. クライアントを接続したままサーバーを再起動すると再接続待機のままになってしまう。[Ctrl+^ .]を押せと出ているが、日本語キーボードの配列で押しても効かない。US配列で[^]は数字の6のシフトなので、[Ctrl+6 .]と押せば止めることができる

History

bash completion

長いホスト名をキー入力する場合、TABキーで補完してくれる機能が bash completion で、Debianで有効になっている。 また、sshで一度接続したことのあるホストは ~/.ssh/known_hosts というファイルにホスト鍵と一緒に保管される。

sshに限らずシェルコマンドでホスト名が必要な個所で TAB キーを押すと /etc/hosts や known_hosts 等に書かれているホストを候補に上げてくれる。 ところが、sshのあるバージョンから、known_hostsファイルをハッシュ化して保存するのがデフォルトになってしまい、 TABキーを押した際の候補に出なくなってしまっている。 iPhone等でmoshを使って操作する際、できる限り補完機能を使いたいので、 known_hostsを候補に出してほしいところではある。

known_hostsをハッシュ化して保存しないようにするには、~/.ssh/config に HashKnownHosts no と書けばよい。 既存の known_hosts を known_hosts.hashed というように名前を変えてから config に HashKnownHosts no を加えて、 いつも使うホストに ssh で接続していけば、ハッシュ化していない known_hosts が得られる。*1 known_hostsファイルをハッシュ化しなければならない理由は調べていないが、盗み見対策なら chmod 600 ~/.ssh/known_hosts しておけば大丈夫な気がする。

Links


*1 ハッシュ化していない known_hostsファイルをハッシュ化するのは ssh-keygen -H コマンド一発だが、戻すことはできない

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-02-26 (火) 21:23:04 (3129d)