SSH to standard w zarządzaniu serwerami, jednak na telefonie zrywa połączenie za każdym razem, gdy przełączasz się z Wi-Fi na dane komórkowe lub blokujesz ekran. Mosh utrzymuje aktywną sesję podczas zmiany sieci i natychmiast wyświetla wpisywane znaki, nawet przy opóźnieniach. Nie zastępuje SSH: wykorzystuje go do logowania, a potem komunikuje się przez UDP.
Czym jest SSH i co dodaje Mosh
SSH nawiązuje szyfrowane połączenie TCP z serwerem. Jeśli adres IP telefonu ulegnie zmianie, połączenie zostaje przerwane i trzeba logować się ponownie. Mosh (mobile shell) najpierw łączy się przez SSH, uruchamia mosh-server na serwerze, a od tego momentu sesja działa przez UDP. Zapewnia to trzy kluczowe korzyści:
- Roaming: sesja przetrwa zmianę sieci lub adresu IP.
- Predykcyjne echo lokalne: wpisywany tekst pojawia się od razu i jest korygowany, jeśli serwer zwróci inny wynik.
- Wznawianie po uśpieniu: po odblokowaniu telefonu sesja pozostaje dokładnie w tym samym miejscu.
| SSH | Mosh | |
|---|---|---|
| Transport | TCP | UDP (logowanie przez SSH) |
| Przełączenie z Wi-Fi na dane komórkowe | Zrywa połączenie | Utrzymuje połączenie |
| Porty | 22/TCP (lub własny skonfigurowany) | 22/TCP do logowania + UDP 60000-61000 |
| Przekierowanie portów i X11 | Tak | Nie |
| Dopasowanie tekstu po zmianie rozmiaru okna | Tak | Nie (mosh-server tego nie obsługuje) |
Źródła: mosh.org i man mosh, stan z 18.10.2026 r.
Kiedy NIE używać Mosh
- Gdy potrzebujesz tunelowania lub przekierowywania portów (port forwarding): Mosh tego nie obsługuje.
- Gdy zapora sieciowa lub sieć blokuje porty UDP 60000-61000. Możesz wskazać pojedynczy port za pomocą
-p, ale musi być on otwarty. - Gdy na serwerze nie ma
mosh-serveri nie masz możliwości go zainstalować (sudo apt install moshw Debianie/Ubuntu,brew install moshw macOS).
Jak korzystać z Mosh w termi1
termi1 ma zintegrowanego oficjalnego klienta mosh-client na iPhone'a, iPada i Androida – nie jest to nieoficjalna reimplementacja. W formularzu połączenia domyślnym trybem jest SSH, a Mosh włącza się przełącznikiem. Możesz także wkleić ciąg MOSH CONNECT … wygenerowany przez mosh-server. Jeśli na serwerze brakuje Mosh, sesja przejdzie na SSH, a aplikacja powiadomi Cię o tym, zamiast po cichu przerywać działanie. Sesje działają wewnątrz tmux, więc uruchomione zadania czekają na Twój powrót.
Jeśli Twoim serwerem jest Mac, dostępny jest termi1 Companion – bezpłatna aplikacja na pasek menu (macOS 14 lub nowszy). Pobierzesz ją ze strony termi1.com jako plik DMG podpisany i poświadczony notarialnie przez Apple; nie ma jej w Mac App Store. Odpowiada za trzy rzeczy:
- Sprawdza, czy zdalne logowanie,
mosh-serveroraz tmux są włączone. Jeśli brakuje Mosh, otwiera Terminal z przygotowanym poleceniembrew install mosh, ale nie uruchamia go bez Twojej zgody. - Paruje iPhone'a lub iPada za pomocą sześciocyfrowego kodu: telefon przesyła swój klucz publiczny do
~/.ssh/authorized_keys, bez ręcznego kopiowania i wklejania czegokolwiek. - Po włączeniu (funkcja jest domyślnie wyłączona) powiadamia na Macu o zakończeniu długiego procesu pozostawionego w tmux.
Często zadawane pytania
Czy Mosh zastępuje SSH?
Nie. Mosh wykorzystuje SSH do uwierzytelnienia i uruchomienia mosh-server na serwerze. Następnie sesja przełącza się na UDP, ale Twoje klucze i konfiguracja SSH pozostają bez zmian. Bez działającego dostępu SSH do serwera nie skorzystasz z Mosh.
Jakie porty trzeba otworzyć dla Mosh?
Port SSH (najczęściej 22/TCP) do autoryzacji oraz zakres UDP 60000-61000 na potrzeby samej sesji. Jeśli nie chcesz otwierać pełnego zakresu, ustaw jeden port za pomocą opcji -p i odblokuj tylko ten port w zaporze sieciowej.
Czy Mosh obsługuje tunelowanie i przekierowanie portów?
Nie. Mosh nie obsługuje przekierowywania portów ani przesyłania interfejsu przez X11. Jeśli potrzebujesz tunelu do bazy danych lub panelu w przeglądarce, zestaw w tym celu zwykłe połączenie SSH, a Mosh zostaw do interaktywnej pracy w konsoli.
Co się stanie w termi1, jeśli serwer nie ma Mosh?
Połączenie zostanie nawiązane przez SSH, a termi1 wyświetli informację, że nie odnaleziono mosh-server. Możesz doinstalować pakiet poleceniem sudo apt install mosh (Debian/Ubuntu) lub brew install mosh (macOS) i ponownie włączyć przełącznik w aplikacji.