Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/mobile-shell/mosh
Allgemeine DienstprogrammeNetzwerksicherheit
GitHubmobile-shell/mosh

mosh

Remote-Terminalanwendung, die intermittierende Konnektivität, IP-Roaming und spekulatives lokales Echo für Hochlatenzverbindungen unterstützt. Verwendet AES-128-Verschlüsselung über UDP mit SSH-basierter Authentifizierung.

Repository anzeigenWebseite
14.3k852vor 5 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

ci

Mosh: die mobile Shell

Mosh ist eine entfernte Terminal-Anwendung, die intermittierende Konnektivität unterstützt, Roaming ermöglicht und spekulatives lokales Echo und Zeilenbearbeitung von Benutzereingaben bietet.

Es soll die typischen interaktiven Verwendungen von SSH unterstützen, plus:

  • Mosh hält die Sitzung am Leben, wenn der Client in den Ruhezustand geht und später aufwacht oder vorübergehend seine Internetverbindung verliert.

  • Mosh erlaubt es Client und Server zu "roamen" und IP-Adressen zu ändern, während die Verbindung aktiv bleibt. Im Gegensatz zu SSH kann Mosh beim Wechsel zwischen Wi-Fi-Netzwerken oder von Wi-Fi zu Mobilfunkdaten zu kabelgebundenem Ethernet verwendet werden.

  • Der Mosh-Client führt ein Vorhersagemodell des Serververhaltens im Hintergrund aus und versucht intelligent zu erraten, wie jeder Tastendruck den Bildschirmzustand beeinflusst. Wenn er sich seiner Vorhersagen sicher ist, zeigt er sie dem Benutzer an, während er auf die Bestätigung vom Server wartet. Die meisten Tastatureingaben und die Verwendung der linken und rechten Pfeiltasten können sofort zurückgemeldet werden.

    Dadurch ist Mosh auf Hochlatenzverbindungen nutzbar, z. B. auf einer Mobilfunkdatenverbindung oder unzuverlässigem Wi-Fi. Im Unterschied zu früheren Versuchen lokaler Echo-Modi in anderen Protokollen funktioniert Mosh ordnungsgemäß mit Vollbildanwendungen wie emacs, vi, alpine und irssi und erholt sich automatisch von gelegentlichen Vorhersagefehlern innerhalb eines RTT. Auf Hochlatenzverbindungen unterstreicht Mosh seine Vorhersagen, während sie ausstehen, und entfernt die Unterstreichung, wenn sie vom Server bestätigt werden.

Mosh unterstützt kein X-Forwarding oder die nicht-interaktiven Verwendungen von SSH, einschließlich Port-Weiterleitung.

Andere Funktionen

  • Mosh passt seine Bildrate an, um Netzwerk-Warteschlangen auf langsamen Verbindungen nicht zu füllen, sodass "Strg-C" immer innerhalb eines RTT funktioniert, um einen außer Kontrolle geratenen Prozess zu stoppen.

  • Mosh warnt den Benutzer, wenn es eine Weile nichts vom Server gehört hat.

  • Mosh unterstützt verlustbehaftete Verbindungen, die einen erheblichen Anteil ihrer Pakete verlieren.

  • Mosh behandelt einige Unicode-Randfälle besser als SSH und vorhandene Terminalemulatoren allein, erfordert jedoch eine UTF-8-Umgebung, um zu laufen.

  • Mosh nutzt SSH, um die Verbindung herzustellen und Benutzer zu authentifizieren. Mosh enthält keinen privilegierten (root) Code.

Mosh beziehen

Die Mosh-Website enthält Informationen zu Paketen für viele Betriebssysteme sowie Anleitungen zum Erstellen aus dem Quellcode.

Beachten Sie, dass mosh-client einen AES-Sitzungsschlüssel als Umgebungsvariable erhält. Wenn Sie Mosh auf ein neues Betriebssystem portieren, stellen Sie bitte sicher, dass die Umgebungsvariablen eines laufenden Prozesses für andere Benutzer nicht lesbar sind. Wir haben bestätigt, dass dies auf GNU/Linux, OS X und FreeBSD der Fall ist.

Verwendung

Das mosh-client-Binary muss auf dem Rechner des Benutzers vorhanden sein und das mosh-server-Binary auf dem entfernten Rechner.

Der Benutzer führt aus:

root@kitploit:~
$ mosh [user@]host

Wenn sich die Binärdateien mosh-client oder mosh-server außerhalb des $PATH des Benutzers befinden, akzeptiert mosh die Argumente --client=PATH und --server=PATH, um alternative Speicherorte auszuwählen. Weitere Optionen sind in der mosh(1)-Handbuchseite dokumentiert.

Es gibt weitere Beispiele und eine FAQ auf der Mosh-Website.

Funktionsweise

Das mosh-Programm wird per SSH zu user@host eine Verbindung herstellen. SSH kann den Benutzer nach einem Passwort fragen oder Public-Key-Authentifizierung verwenden, um sich anzumelden.

Von diesem Punkt an führt mosh den mosh-server-Prozess (als der Benutzer) auf dem Server aus. Der Serverprozess horcht auf einem hohen UDP-Port und sendet seine Portnummer und einen geheimen AES-128-Schlüssel über SSH zurück an den Client. Die SSH-Verbindung wird dann geschlossen und die Terminalsitzung beginnt über UDP.

Wenn der Client die IP-Adresse ändert, beginnt der Server innerhalb weniger Sekunden, an die neue IP-Adresse zu senden.

Um zu funktionieren, benötigt Mosh UDP-Datagramme, die zwischen Client und Server ausgetauscht werden. Standardmäßig verwendet mosh eine Portnummer zwischen 60000 und 61000, aber der Benutzer kann mit der Option -p einen bestimmten Port auswählen. Bitte beachten Sie, dass die Option -p keinen Einfluss auf den von SSH verwendeten Port hat.

Hinweise für Distributoren

Ein Hinweis zu Compiler-Flags: Mosh ist sicherheitskritischer Code. Bei automatisierten Builds für ein Binärpaket empfehlen wir, die Option --enable-compile-warnings=error an ./configure zu übergeben. Auf GNU/Linux mit g++ oder clang++ sollte das Paket sauber mit -Werror kompilieren. Bitte melden Sie einen Fehler, wenn dies nicht der Fall ist.

Wo verfügbar, wird Mosh mit einer Vielzahl von Binary-Hardening-Flags wie -fstack-protector-all, -D_FORTIFY_SOURCE=2 usw. gebaut. Diese bieten proaktive Sicherheit gegen die Möglichkeit eines Speicherkorruptionsfehlers in Mosh oder einer der von ihm verwendeten Bibliotheken. Eine vollständige Liste der Flags finden Sie, indem Sie in configure.ac nach HARDEN suchen. Das configure-Skript erkennt, welche Flags von Ihrem Compiler unterstützt werden, und aktiviert sie automatisch. Um diese Erkennung zu deaktivieren, übergeben Sie --disable-hardening an ./configure. Bitte melden Sie einen Fehler, wenn Sie Probleme mit den Standardeinstellungen haben; wir möchten, dass so viele Benutzer wie möglich eine möglichst sichere Konfiguration verwenden.

Mosh wird mit einer Standardoptimierungseinstellung von -O2 ausgeliefert. Einige Distributoren haben gefragt, ob dies auf -Os geändert werden kann (was den Compiler veranlasst, Platzoptimierungen gegenüber Zeitoptimierungen zu bevorzugen). Wir haben mit dem enthaltenen Programm src/examples/benchmark getestet. Die Ergebnisse zeigen, dass -O2 40% schneller ist als -Os mit g++ 4.6 auf GNU/Linux und 16% schneller als -Os mit clang++ 3.1 auf Mac OS X. In beiden Fällen erzeugte -Os ein kleineres Binary (um bis zu 40%, was fast 200 Kilobyte auf der Festplatte spart). Obwohl Mosh nicht besonders CPU-intensiv ist und meistens im Leerlauf ist, wenn der Benutzer nicht tippt, denken wir, dass die Ergebnisse darauf hindeuten, dass -O2 (die Standardeinstellung) vorzuziehen ist.

Unsere Debian- und Fedora-Pakete präsentieren Mosh als ein einzelnes Paket. Mosh hat eine Perl-Abhängigkeit, die nur für die Client-Nutzung erforderlich ist. Für einige Plattformen kann es sinnvoll sein, separate mosh-server- und mosh-client-Pakete zu haben, um die mosh-server-Nutzung ohne Perl zu ermöglichen.

Hinweise für Entwickler

Um einen Beitrag zu Mosh zu leisten, installieren Sie die folgenden Abhängigkeiten:

Debian, Windows Subsystem for Linux:

root@kitploit:~
$ sudo apt install -y build-essential protobuf-compiler \
    libprotobuf-dev pkg-config libutempter-dev zlib1g-dev libncurses5-dev \
    libssl-dev bash-completion tmux less

Fedora, RHEL:

root@kitploit:~
$ sudo dnf group install development-tools
$ sudo dnf install automake protobuf-compiler protobuf-devel libutempter-devel \
    zlib-ng-compat-devel ncurses-devel openssl-devel bash-completion tmux less \
    perl-diagnostics

MacOS:

root@kitploit:~
$ brew install protobuf automake

Sobald Sie das Repository geforkt haben, führen Sie Folgendes aus, um Mosh zu bauen und zu testen:

root@kitploit:~
$ ./autogen.sh
$ ./configure
$ make
$ make check

Mosh unterstützt die Erstellung von Code-Coverage-Berichten durch Tests, aber diese Funktion ist standardmäßig deaktiviert. Um sie zu aktivieren, stellen Sie sicher, dass lcov auf Ihrem System installiert ist. Konfigurieren und führen Sie dann die Tests aus:

root@kitploit:~
$ ./configure --enable-code-coverage
$ make check-code-coverage

Dadurch werden alle Tests ausgeführt und ein Coverage-Bericht in HTML-Form erstellt, der mit Ihrem bevorzugten Browser geöffnet werden kann. Idealerweise sollte neu hinzugefügter Code eine inkrementelle Testabdeckung von 90% (oder besser) anstreben.

Weitere Informationen

  • Mosh-Website:

    https://mosh.org

  • [email protected] Mailingliste:

    https://mailman.mit.edu/mailman/listinfo/mosh-devel

  • [email protected] Mailingliste:

    https://mailman.mit.edu/mailman/listinfo/mosh-users

  • #mosh-Kanal auf Libera Chat

    https://web.libera.chat/#mosh

Tool herunterladen