リモートシステムにログインするために、以前はtelnetを使用していました。 telnetの重大なセキュリティの脆弱性のため、 sshに置き換えられました。 。
SSHを使用すると、ユーザーはパスワードの有無にかかわらず、秘密鍵と公開鍵を使用してリモートシステムにログインできます。 SSHの主な利点は、その暗号化です。これにより、ユーザーは盗聴や改ざんの恐れなしにリモートシステムと通信できます。
SSHの欠点
sshの動作を配置するには 簡単に言うと、暗号化されたパケットのTCP接続です。
SSHは、 telnet と同じように、ローカルシステムとリモートシステムの間でパケットを送信します ただし、パケットの内容は暗号化されています。途中でバッファリングと処理はありません。入力した文字もリモートシステムに送信され、リモートシステムはその応答(画面に表示するために入力した文字を含む)をローカルシステムに送信します。
あなたがタイプした単一のキャラクターを見るためにその往復全体を見ることができますか???
“”” 暗号化されたパケットを送受信するだけです 「」」
しかし、ネットワークが切断されているか、非常に遅い場合はどうなりますか。 TCP接続が切断され、ローカルシステムはエラーなしで宙に浮いたままになります。これは典型的なフリーズしたLinuxシステムではなく、SSH接続が切断されたフリーズした端末にすぎません。
以下のいずれかの状況でsshに不満を感じている可能性があります。
- ネットワーク接続が切断されています。 sshセッションには何も表示されません。シェルに入力すると、何も起きていないことに気付くでしょう。次に、インターネット/Wi-Fiアイコンを確認します。
- インターネット接続が遅い場合、同じ状況が発生します。ローカルシステムに入力した文字は、数秒後、場合によっては数分後に表示される場合があります。
- 長期間非アクティブになっていると、コンピュータがアイドル状態でなく、ネットワーク接続がアクティブであったとしても、SSHが機能しなくなることがあります。
要約すると、SSHは優れたセキュリティを提供しましたが、高遅延接続ではほとんど使い勝手がありませんでした。 Linuxでnohupコマンドを使用して、SSH接続が切断された後もコマンドを実行し続けることができますが、これは実際には良い解決策ではありません。何がいいか分かりますかモッシュ!
Mosh:接続の問題のないSSH
MoshはMObileSHellの略です 。これは、上記のすべての問題に対する簡単な解決策を提供します。これは、SSPプロトコル(状態同期プロトコル)を使用したアイテム(オブジェクト)のバッファリングと同期に似た手法を使用します。また、パケットの送信には、コネクションレス型プロトコルであるUDPを使用します。
モッシュがどのように機能するかを知るには、その公式ページを読んでください。
車輪の再発明を避けるために、moshは sshを使用します 認証用。したがって、新しいキーペアやユーザーなどを作成する必要はありません。したがって、 sshのすべてのセキュリティ上の利点 モッシュもあります 。また、ローカルシステムとリモートシステムの両方でSSHセットアップが機能している必要があることも意味します。
Ubuntuおよびその他のLinuxディストリビューションにmoshをインストールします
sshをインストールして構成していない場合は、SSHの基本を学び、Ubuntuまたは使用しているLinuxでSSHを有効にしてください。
SSHセットアップが機能していることを確認したら、moshのインストールは簡単な作業です。インストールする必要のあるパッケージは、ローカルシステムとリモートシステムの両方で同じです。
moshをインストールするには UbuntuまたはDebianベースのLinuxディストリビューションでは、次のコマンドを1つずつ使用できます。
sudo apt update
sudo apt install mosh
Moshは、すべての主要なLinuxディストリビューションで利用できます。ディストリビューションのパッケージマネージャーを使用してインストールします。
moshのインストールが完了すると、クライアント/ローカル側ですべての準備が整います。リモート側(つまりサーバー)では、簡単な構成を行う必要があります。
私がモッシュと言った部分を覚えておいてください UDPを使用しますか?デフォルトでは、moshはUDPポート60000〜61000を使用します。したがって、リモートシステムにファイアウォールがある場合は、それらのポートのファイアウォールルールを次のように書き直す必要があります。 ufw はファイアウォールマネージャーです。
sudo ufw allow 60000:61000/udp
moshを介して接続しましょう
現在、動作するSSH、両方のシステムにインストールされているmosh、およびリモートサーバーのポート60K〜61KでUDPトラフィックを許可するファイアウォールルールがあります。
モッシュを使用するには、以下のように簡単です
mosh [email protected]
うん!知っている。 sshのようにシンプルです。
しかし、デフォルトのポート以外のsshポートを指定する必要がある場合、またはssh固有のオプションを使用する必要がある場合はどうなりますか。モッシュはあなたをカバーしました。 「sshオプション[引数]を渡すだけです。 」をオプション–ssh に追加します 。
たとえば、 sshに接続する必要があります リモートサーバーのポート2222で実行されています。次のように行うことができます。
mosh [email protected] --ssh="ssh -p 2222"
システムが接続されているのはそれだけです。 moshのパワーを実現するために、ネットワーク接続をオフにしてからもう一度オンにしてみてください。モッシュがまだ機能していることがわかります。なんてクールだ!
Moshに関するこのチュートリアルが気に入っていただけたでしょうか。 Moshを発見して以来、リモートサーバーへの接続にsshを使用することをやめました。君はどうでしょう? Moshが好きでしたか、それともSSHが好きですか?意見を共有してください。