目次:
技術の専門家であれば、間違いなくSecure Shell(SSH)について知っており、それを定期的に使用してリモートシステムに接続します。 SSHは優れたツールですが、信頼できる有線接続があることを前提としています。 信頼性の低いワイヤレス接続では常に機能するとは限りません。 変更された新しいツールの1つであるMosh、つまりモバイルシェルは、ユーザーがリモートシステムに接続し、ネットワークがダウンした場合やネットワークを切り替えた場合でも接続を維持できるようにします。
なぜモッシュなのか?
Secure Shellは、ホール全体または全国のサーバーにログインする必要がある管理者、プログラマー、およびパワーユーザーにとって不可欠です。 これは、Telnetの安全で暗号化された代替品です。 これは素晴らしいツールですが、Wi-Fi上のモバイルコンピュータが一般的になる前の時代である90年代に設計されました。 SSHは、信頼性の高い有線接続を前提としていますが、ユーザーがモバイルに行く場合は常にそうとは限りません。 多くの人が気づいているように、Wi-Fi接続はしばしばむらがあり、Wi-FiからLTEに接続を変更することは、接続を切断することなく不可能です。
それ以外の場合は、接続の障害ではなく、ユーザーの障害です。 または、彼らがITで言うように、それはPEBKACです(キーボードと椅子の間に問題があります)。 私の一番のお気に入りは、SSH経由でリモートマシンにログインしていることを忘れながらふたを閉じることです。 蓋を開けてターミナルウィンドウに入力しても何も起こりません。 できることは、セッションを終了して再度ログインすることだけです。 それは迷惑ですが、私は何度もそれをやったことがあり、あなたも同様に持っていると確信しています。
多くの人々は、GNU Screenやtmuxなどのプログラムを使用して、これを軽減しようとします。 これらは、コマンドラインのタブブラウジングのようなものを提供するだけでなく、接続がダウンした場合でもセッションを保持できるターミナルマルチプレクサーです。 再度ログインすれば、中断したところから再開できます。 これらのプログラムは便利ですが、SSH自体の問題は依然として残っています。
私はSSHの運命に辞任しましたが、ある日、たまたま出かけたシェルサーバー上の新しいプログラムに出くわしました。 MoshはSSHを改善する試みであり、ラップトップでの使用に適しています。 それは、私たちにLispをもたらしたMITの賢い人々によって開発されたものです(そのため、おそらく彼らはそれを見ると良いことを知っているでしょう)。 主要な開発者の1人であるKeith Winsteinが、その仕組みを示すビデオを作成しました。
Moshの作成者は、特にWi-Fi、セルラー、および長距離リンクを介した、より堅牢で応答性の高いSSHの代替としてそれを説明しています。
使い方
Moshは、State Synchronization Protocol(SSP)と呼ばれる新しいプロトコルを使用します。 これは、TelnetやSSHなどの従来のリモート接続プロトコルに基づいています。 SSHでは、サーバーはクライアントに数バイトをダウンストリームに送信して解釈するだけです。
SSPは別のレイヤーを追加します。 サーバーとクライアントは、シーケンス番号を使用して送信された内容を追跡します。 サーバーが以前に送信したものよりも大きいシーケンス番号を取得した場合、クライアントが別の接続に移動したことを把握するのに十分賢明です。 これは、Wi-FiネットワークからWi-Fiネットワークへ、またはWi-Fiネットワークからセルネットワークへ、またはWi-Fiネットワークから有線接続へなど、簡単にローミングできることを意味します。
Moshが提供するもう1つの優れた機能は、リアルタイムの文字エコーです。 通常、SSHを使用している場合、サーバーが入力内容をエコーして返すため、入力と画面に文字が表示されるのを待つ間に遅延が生じる場合があります。
それを得る
興味があれば、Moshのインストールが簡単であることを知ってうれしいでしょう。 ほとんどの主要なLinuxおよびUnixディストリビューションのリポジトリにあります。 Moshホームページには、DebianとUbuntu、Gentoo、Arch、Fedoraを使用した例が示されています。 Mac OS XはUnixベースであるため、Macユーザーも参加できます。 ネイティブパッケージがあり、HomebrewとMacPortsを使用してMacでコンパイルしたい人がいます。 システムにパッケージとしてMoshがない場合は、必要に応じて自分でダウンロードしてコンパイルできます。
クライアントをインストールしたら、Moshを起動して実行し、ログインする準備ができました。SSHで行うのとまったく同じようにログインします。 実際、Moshは実際にログインを処理しません。 ログイン情報をSSHに渡します。 これは、SSHの公開キー暗号化機能を使用して、パスワードを必要とせずに安全にログインする場合に便利です。
ただし、キャッチが1つあります。 接続するにはMoshサーバーが必要です。 幸いなことに、それをインストールするためにスーパーユーザーである必要はありません。 sysadminにインストールを指示できない場合は、ホームディレクトリに置いてその方法で起動することもできます。 Moshはまだ新しいので、おそらくいつかはSSHと同じようにサーバー上でユビキタスになるでしょう。
別のこと:Moshは、端末がUTF-8をサポートすることを期待しています。 ほぼすべての最新のターミナルエミュレーターが行いますが、リモートシステム上のサーバーが接続を受け入れる前に、$ LANG環境変数を設定する必要があります。
生き続ける
接続が完了したら、自宅、職場、電車、または巡航高度のいずれかで、構成ファイルのコーディングや編集、またはリモートマシンの管理を行うことができます。
Wi-Fiを切断することでMoshの堅牢性をテストできます。 Moshは、接続されていないことを示すメッセージをタイマーとともに端末の上部に表示します。 再接続すると、セッションは中断したところから再開されます。 ラップトップのふたを閉じても機能します。
Moshは、GNU Screenやtmuxのようなターミナルマルチプレクサーと組み合わせるとさらに優れています。 過去にMoshのように使用され、信頼性の低い接続を介してSSHセッションをアクティブに保ちましたが、Moshと一緒に使用すると、いくつかの利点があります。 たとえば、ある端末から切り離し、別のマシンからログアウトしてログインし、マルチプレクサを呼び出して続行させることができます。 これは、長時間のジョブに非常に役立ちます。 IRCの熱心なユーザーにとっても、シェルサーバーに接続したまま、必要に応じて切り離すことも人気があります。
モッシュの時間?
Moshを使用してモバイルリモートログインエクスペリエンスを大幅に改善する方法を理解したので、自分で試してみませんか?