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:

  1. Roaming: sesja przetrwa zmianę sieci lub adresu IP.
  2. Predykcyjne echo lokalne: wpisywany tekst pojawia się od razu i jest korygowany, jeśli serwer zwróci inny wynik.
  3. Wznawianie po uśpieniu: po odblokowaniu telefonu sesja pozostaje dokładnie w tym samym miejscu.
SSHMosh
TransportTCPUDP (logowanie przez SSH)
Przełączenie z Wi-Fi na dane komórkoweZrywa połączenieUtrzymuje połączenie
Porty22/TCP (lub własny skonfigurowany)22/TCP do logowania + UDP 60000-61000
Przekierowanie portów i X11TakNie
Dopasowanie tekstu po zmianie rozmiaru oknaTakNie (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-server i nie masz możliwości go zainstalować (sudo apt install mosh w Debianie/Ubuntu, brew install mosh w 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-server oraz tmux są włączone. Jeśli brakuje Mosh, otwiera Terminal z przygotowanym poleceniem brew 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.