GNU/Linux >> Linux の 問題 >  >> Linux

Moshを使用したSSHでのネットワーク接続の問題を取り除く

リモートシステムにログインするために、以前はtelnetを使用していました。 telnetの重大なセキュリティの脆弱性のため、 sshに置き換えられました。

SSHを使用すると、ユーザーはパスワードの有無にかかわらず、秘密鍵と公開鍵を使用してリモートシステムにログインできます。 SSHの主な利点は、その暗号化です。これにより、ユーザーは盗聴や改ざんの恐れなしにリモートシステムと通信できます。

SSHの欠点

sshの動作を配置するには 簡単に言うと、暗号化されたパケットのTCP接続です。

SSHは、 telnet と同じように、ローカルシステムとリモートシステムの間でパケットを送信します ただし、パケットの内容は暗号化されています。途中でバッファリングと処理はありません。入力した文字もリモートシステムに送信され、リモートシステムはその応答(画面に表示するために入力した文字を含む)をローカルシステムに送信します。

あなたがタイプした単一のキャラクターを見るためにその往復全体を見ることができますか???

“”” 暗号化されたパケットを送受信するだけです 「」」

しかし、ネットワークが切断されているか、非常に遅い場合はどうなりますか。 TCP接続が切断され、ローカルシステムはエラーなしで宙に浮いたままになります。これは典型的なフリーズしたLinuxシステムではなく、SSH接続が切断されたフリーズした端末にすぎません。

以下のいずれかの状況でsshに不満を感じている可能性があります。

  1. ネットワーク接続が切断されています。 sshセッションには何も表示されません。シェルに入力すると、何も起きていないことに気付くでしょう。次に、インターネット/Wi-Fiアイコンを確認します。
  2. インターネット接続が遅い場合、同じ状況が発生します。ローカルシステムに入力した文字は、数秒後、場合によっては数分後に表示される場合があります。
  3. 長期間非アクティブになっていると、コンピュータがアイドル状態でなく、ネットワーク接続がアクティブであったとしても、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のインストールが完了すると、クライアント/ローカル側ですべての準備が整います。リモート側(つまりサーバー)では、簡単な構成を行う必要があります。

リモートサーバーでの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が好きですか?意見を共有してください。


Linux
  1. ネットワーク接続をテストするためのポートへのTelnet

  2. Nmapを使用して新しいネットワークを列挙する

  3. Linuxサーバーのネットワーク接続を確認してください

  1. LinuxでNetworkManagerを使い始める

  2. Linuxのpingコマンドで接続の問題を診断する

  3. nmcli を使用して、接続されている Wi-Fi ネットワークの信号強度を取得する

  1. tcpdumpを使用してネットワークのトラブルシューティングを行う

  2. sshpassを使用したLinuxでのSSHパスワードの自動化

  3. アクセスできないネットワーク上にあるサービス/サーバーにアクセスする方法(SSHトンネルを使用)