Spisu treści:
Jeśli jesteś specjalistą technicznym, niewątpliwie wiesz o Secure Shell (SSH) i regularnie go używasz do łączenia się ze zdalnymi systemami. Chociaż jest to świetne narzędzie, SSH zakłada, że masz niezawodne połączenie przewodowe. Nie zawsze działa tak dobrze na połączeniach bezprzewodowych, co może być zawodne. Jedno nowe narzędzie, które się zmieniło, to Mosh lub Mobile Shell, który pozwala użytkownikom łączyć się ze zdalnymi systemami i pozostać w kontakcie nawet wtedy, gdy sieć przestaje działać lub zmieniasz sieci.
Dlaczego Mosh
Bezpieczna powłoka jest niezbędna dla administratorów, programistów i zaawansowanych użytkowników, którzy muszą logować się na serwerach w całej hali lub w całym kraju. Jest to bezpieczny, szyfrowany zamiennik usługi Telnet. To świetne narzędzie, ale zostało zaprojektowane w latach 90., w czasach, gdy komputery mobilne w Wi-Fi stały się powszechne. SSH zakłada niezawodne połączenie przewodowe, co nie zawsze ma miejsce, gdy użytkownicy korzystają z urządzeń mobilnych. Łączność Wi-Fi, jak przekonało się wiele osób, jest często nierówna i nie można zmienić połączeń, powiedzmy z Wi-Fi na LTE, bez zerwania połączenia.
Innym razem nie jest to wina połączenia, ale użytkownika. Lub, jak mówią w IT, jest to PEBKAC (istnieje problem między klawiaturą a krzesłem). Moim zawsze ulubionym jest zamykanie pokrywy, jednocześnie zapominając, że jestem zalogowany do zdalnego komputera za pośrednictwem SSH. Otwieram wieko i piszę w oknie terminala i nic się nie dzieje. Wszystko, co mogę zrobić, to zabić sesję i zalogować się ponownie. To denerwujące, ale robiłem to niezliczoną ilość razy i jestem pewien, że ty też.
Wiele osób próbuje to złagodzić za pomocą programów takich jak GNU Screen i tmux. Są to multipleksery terminali, które nie tylko dają ci coś w rodzaju przeglądania w kartach dla wiersza poleceń, ale mogą także zachować twoją sesję na wypadek, gdyby połączenie się złączyło. Po prostu zaloguj się ponownie i możesz odebrać w miejscu, w którym zostało przerwane. Mimo że te programy są przydatne, problemy z samym SSH nadal występują.
Zrezygnowałem z losu SSH, ale któregoś dnia natknąłem się na nowy program na serwerze powłoki, na którym się spotykałem. Mosh to próba ulepszenia SSH, dzięki czemu nadaje się do użytku na laptopach. Jest rozwijany przez niektórych sprytnych ludzi z MIT, ludzi, którzy przywieźli nam Lisp (więc prawdopodobnie wiedzą dobrze, kiedy je widzą). Keith Winstein, jeden z głównych programistów, stworzył wideo pokazujące, jak to działa.
Twórcy Mosh opisują to jako zamiennik SSH, który jest bardziej niezawodny i responsywny, szczególnie przez Wi-Fi, połączenia komórkowe i dalekobieżne.
Jak to działa
Mosh używa nowego protokołu o nazwie State Synchronization Protocol (SSP). Opiera się to na tradycyjnych protokołach zdalnego połączenia, takich jak Telnet i SSH. W SSH serwer wysyła tylko niektóre bajty do klienta w celu interpretacji.
SSP dodaje kolejną warstwę. Serwer i klient śledzą, co zostało wysłane, używając numerów sekwencyjnych. Jeśli serwer otrzyma numer sekwencyjny, który jest wyższy niż poprzednio wysłany, jest wystarczająco inteligentny, aby stwierdzić, że klient przeniósł się do innego połączenia. Oznacza to, że łatwo jest wędrować z sieci Wi-Fi do sieci Wi-Fi lub z sieci Wi-Fi do sieci komórkowej lub z sieci Wi-Fi do połączenia przewodowego - i tak dalej.
Kolejną ciekawą funkcją Mosh jest echo postaci w czasie rzeczywistym. Zwykle, jeśli korzystasz z SSH, możesz zauważyć opóźnienie między pisaniem a oczekiwaniem na pojawienie się postaci na ekranie, gdy serwer powtórzy to, co piszesz z powrotem.
Zdobywanie
Jeśli jesteś zaintrygowany, z przyjemnością dowiesz się, że instalacja Mosh jest dość łatwa. Większość głównych dystrybucji Linuksa i Uniksa ma je w swoich repozytoriach. Strona główna Mosh pokazuje przykłady z wykorzystaniem Debiana i Ubuntu, a także Gentoo, Arch i Fedora. Ponieważ system Mac OS X jest oparty na systemie Unix, użytkownicy komputerów Mac mogą również dołączyć. Istnieje pakiet natywny, a ludzie, którzy chcą go skompilować na komputerze Mac przy użyciu Homebrew i MacPorts. Jeśli twój system nie ma Mosh jako pakietu, możesz go pobrać i skompilować samodzielnie, jeśli zajdzie taka potrzeba.
Po zainstalowaniu klienta możesz uruchomić Mosh i zalogować się. Zaloguj się dokładnie tak, jak w przypadku SSH. W rzeczywistości Mosh nie obsługuje logowania; przekazuje dane logowania do SSH. Jest to przydatne, jeśli używasz funkcji szyfrowania klucza publicznego SSH do bezpiecznego logowania bez potrzeby podawania hasła.
Jest jednak jeden haczyk. Do połączenia potrzebujesz serwera Mosh. Na szczęście nie musisz być superużytkownikiem, aby go zainstalować. Możesz nawet umieścić go w swoim katalogu domowym i uruchomić w ten sposób, jeśli nie możesz namówić administratora systemu do zainstalowania go. Mosh jest wciąż nowy, więc być może kiedyś stanie się tak wszechobecny na serwerach, jak SSH.
Kolejna rzecz: Mosh oczekuje, że twój terminal będzie obsługiwał UTF-8. Robią to prawie wszystkie współczesne emulatory terminali, ale może być konieczne ustawienie zmiennej środowiskowej $ LANG, zanim serwer w systemie zdalnym zaakceptuje połączenie.
Pozostając przy życiu
Teraz, gdy jesteś podłączony, możesz zabrać się do pracy, kodowania lub edycji plików konfiguracyjnych lub administrowania zdalnymi maszynami, w domu, w pracy, w pociągu lub na wysokości przelotowej.
Możesz sprawdzić, jak wytrzymały jest Mosh, odłączając Wi-Fi. Mosh wyświetli komunikat w górnej części terminala informujący, że nie ma połączenia, wraz z zegarem. Połącz się ponownie, a sesja rozpocznie się od miejsca, w którym została przerwana. Działa również, jeśli zamkniesz pokrywę laptopa.
Mosh jest jeszcze lepszy w połączeniu z terminalnym multiplekserem, takim jak GNU Screen lub tmux. Były one używane w przeszłości tak, jak Mosh, aby utrzymać aktywność sesji SSH przez niewiarygodne połączenia, ale nadal oferują pewne zalety, gdy są używane z Mosh. Na przykład możesz odłączyć od jednego terminala, wylogować się i zalogować na innym komputerze, wywołać multiplekser i kontynuować. Jest to bardzo przydatne w przypadku długich prac. Jest również popularny wśród zapalonych użytkowników IRC, aby pozostać w kontakcie na serwerze powłoki i odłączyć w razie potrzeby.
Czas na Mosha?
Teraz, gdy już wiesz, jak Mosh może sprawić, że zdalne logowanie mobilne będzie znacznie lepsze, dlaczego nie spróbować samemu?