Um sich bei einem entfernten System anzumelden, haben wir früher Telnet verwendet. Aufgrund der schwerwiegenden Sicherheitslücken von Telnet wurde es durch ssh ersetzt .
SSH ermöglicht es Benutzern, sich mit/ohne Passwort, aber mit Hilfe eines privaten Schlüssels und eines öffentlichen Schlüssels in entfernte Systeme einzuloggen. Der Hauptvorteil von SSH ist seine Verschlüsselung. Es ermöglicht dem Benutzer, mit dem Remote-System zu kommunizieren, ohne befürchten zu müssen, abgehört oder manipuliert zu werden.
Die Mängel von SSH
Um ssh zum Laufen zu bringen vereinfacht ausgedrückt handelt es sich um eine TCP-Verbindung verschlüsselter Pakete.
SSH sendet die Pakete zwischen dem lokalen und dem entfernten System genau wie Telnet aber der Inhalt des Pakets ist verschlüsselt. Es gibt keine Pufferung und Verarbeitung in der Mitte. Sogar die von Ihnen eingegebenen Zeichen werden an das entfernte System gesendet, und das entfernte System sendet dann seine Antwort (die das eingegebene Zeichen enthält, das auf dem Bildschirm angezeigt werden soll) an das lokale System.
Können Sie den gesamten Hin- und Rückweg sehen, um ein einzelnes Zeichen zu sehen, das Sie eingegeben haben ???
„““Es sendet/empfängt nur verschlüsselte Pakete „““
Aber was passiert, wenn das Netzwerk getrennt wird oder sehr langsam ist. Die TCP-Verbindung wird unterbrochen und das lokale System bleibt ohne Fehler in der Luft hängen. Es ist nicht das typische eingefrorene Linux-System, sondern nur ein eingefrorenes Terminal mit getrennter SSH-Verbindung.
Möglicherweise waren Sie in einer der folgenden Situationen mit ssh frustriert.
- Ihre Netzwerkverbindung wurde getrennt. Ihre SSH-Sitzung zeigt nichts an. Wenn Sie die Shell eingeben, werden Sie feststellen, dass nichts passiert. Und dann überprüfen Sie das Internet-/WLAN-Symbol.
- Wenn Sie eine langsame Internetverbindung haben, tritt die gleiche Situation auf. Die Zeichen, die Sie im lokalen System eingeben, können nach Sekunden oder in schlimmeren Fällen sogar nach Minuten erscheinen.
- Wenn Sie längere Zeit inaktiv sind, funktioniert SSH manchmal nicht mehr, obwohl Ihr Computer nicht im Leerlauf war und die Netzwerkverbindung aktiv war.
Zusammenfassend bot SSH große Sicherheit, aber wenig Benutzerfreundlichkeit bei Verbindungen mit hoher Latenz. Sie können den Befehl nohup in Linux verwenden, um die Befehle auch nach dem Abbruch der SSH-Verbindung weiter auszuführen, aber es ist keine wirklich gute Lösung. Weißt du, was besser ist? Mosch!
Mosh:SSH ohne Verbindungsprobleme
Mosh steht für MObile SHell . Es bietet eine einfache Lösung für alle oben genannten Probleme. Es verwendet eine Technik ähnlich der Pufferung und Synchronisierung von Elementen (Objekten) unter Verwendung des SSP-Protokolls (State-Synchronization Protocol). Und um Pakete zu übertragen, verwendet es UDP, ein verbindungsloses Protokoll.
Um zu erfahren, wie Mosh funktioniert, lesen Sie die offizielle Seite.
Um das Rad nicht neu erfinden zu müssen, verwendet Mosh ssh zur Authentifizierung. Sie müssen also keine neuen Schlüsselpaare oder Benutzer und dergleichen erstellen. Also jeder Sicherheitsvorteil, der ssh hat ist auch mit mosh . Es impliziert auch, dass Sie sowohl im lokalen als auch im Remote-System über ein funktionierendes SSH-Setup verfügen sollten.
Installieren Sie Mosh auf Ubuntu und anderen Linux-Distributionen
Wenn Sie ssh nicht installiert und konfiguriert haben, lernen Sie bitte die Grundlagen von SSH und aktivieren Sie SSH auf Ubuntu oder einem beliebigen Linux, das Sie verwenden.
Nachdem Sie sichergestellt haben, dass Sie über ein funktionierendes SSH-Setup verfügen, ist die Installation von Mosh eine einfache Aufgabe. Das Paket, das Sie installieren müssen, ist in lokalen und entfernten Systemen dasselbe.
Um mosh zu installieren In Ubuntu- oder Debian-basierten Linux-Distributionen können Sie die folgenden Befehle nacheinander verwenden:
sudo apt update
sudo apt install mosh
Mosh ist in allen wichtigen Linux-Distributionen verfügbar. Verwenden Sie den Paketmanager Ihrer Distribution, um es zu installieren.
Nachdem Sie mit der Installation von Mosh fertig sind, ist auf der Client-/lokalen Seite alles bereit. Auf der Remote-Seite (d. h. Server) müssen Sie eine einfache Konfiguration vornehmen.
Mosh auf Remote-Server konfigurieren
Erinnere dich an den Teil, an dem ich Mosh gesagt habe verwendet UDP? Standardmäßig verwendet Mosh die UDP-Ports 60000-61000. Wenn Sie also eine Firewall auf dem Remote-System haben, müssen Sie die Firewall-Regel für diese Ports wie folgt umschreiben. ufw ist der Firewall-Manager.
sudo ufw allow 60000:61000/udp
Verbinden wir uns über Mosh
Ab sofort haben wir ein funktionierendes SSH, Mosh, das auf beiden Systemen installiert ist, und eine Firewall-Regel, die UDP-Verkehr auf den Ports 60K-61K auf dem Remote-Server zulässt.
Um Mosh zu verwenden, ist es so einfach wie unten
mosh [email protected]
Ja! Ich weiss. Es ist so einfach wie ssh.
Aber was ist, wenn ich einen anderen ssh-Port als den Standardport angeben oder ssh-spezifische Optionen verwenden muss? Mosh hat dich abgedeckt. Sie müssen nur die „ssh-Option [Argument] übergeben ” zur Option –ssh .
Zum Beispiel muss ich eine Verbindung zu ssh herstellen läuft auf Port 2222 auf dem Remote-Server. Dies kann wie folgt durchgeführt werden.
mosh [email protected] --ssh="ssh -p 2222"
Das ist es, Systeme sind verbunden. Um die Macht von Mosh zu erkennen, versuchen Sie jetzt, Ihre Netzwerkverbindung aus- und wieder einzuschalten. Sie können sehen, dass Mosh immer noch funktioniert. Wie cool ist das!
Ich hoffe, Ihnen hat dieses Tutorial zu Mosh gefallen. Seit ich Mosh entdeckt habe, habe ich aufgehört, ssh für die Verbindung zu entfernten Servern zu verwenden. Und du? Hat dir Mosh gefallen oder bevorzugst du immer noch SSH? Teilen Sie Ihre Ansichten.