Główna >>

RSS
Nie idźmy na tę wojnę! To nie nasza wojna!

 

Terminal w przeglądarce

2009-11-04   kategorie: praca

Program o nazwie Shell In A Box to jedno z ciekawszych narzędzi, z jakimi spotkałem się w ostatnim czasie w Sieci. Niejednokrotnie zdarza się, że potrzebujemy dostępu terminalowego do naszego konta na serwerze, a mamy do dyspozycji komputer, na którym korzystać można jedynie z przeglądarki WWW. W takiej sytuacji przychodzi nam z pomocą technologia AJAX, dzięki której możliwe było stworzenie rozwiązań określanych jako web-based shell - specjalnego oprogramowania działającego po stronie serwera, pozwalającego nam na dostęp do shella poprzez przeglądarkę.

Istnieje kilka narzędzi tego typu, z których najczęściej wykorzystywanymi są Anyterm i Ajaxterm (istnieje nawet oparty na tym drugim komercyjny serwis oferujący zdalny dostęp przez WWW do dowolnego serwera udostępniającego SSH). Oba programy mają jednak wady. Prócz skomplikowanej instalacji (oba wymagają konfiguracji odpowiedniego modułu w serwerze Apache, a Ajaxterm dodatkowo interpretera języka Python, w którym jest napisany) ich podstawowym mankamentem jest to, że jakość emulacji terminala w obydwu programach pozostawia wiele do życzenia. O ile nadają się one do prostego wpisywania komend systemowych, to przy próbie skorzystania z jakiejś aplikacji pełnoekranowej - np. klienta e-maila czy edytora tekstowego - zawartość ekranu ulega zupełnemu zniekształceniu i trzeba pracować "na pamięć", domyślając się, co właściwie na ekranie jest wyświetlane. Praktycznie dyskwalifikuje to obydwa programy do poważniejszych zastosowań, a jako że powstały one kilka lat temu i obecnie nie są już rozwijane, na poprawę w tym względzie nie ma co liczyć...

Na tym tle Shell In A Box okazuje się prawdziwą rewelacją. Emulacja powszechnie stosowanego standardu terminala VT100 jest pełna - działają wszystkie aplikacje pełnoekranowe, włącznie z klawiszami funkcyjnymi, kursora, PageUp/PageDown itd. - dla przykładu na poniższym zrzucie ekranu można zobaczyć pracujący w okienku przeglądarki popularny menedżer plików Midnight Commander:

[Kliknij aby powiększyć]

Jak widać, program obsługuje również polskie litery, pod warunkiem że na serwerze stosowany jest standard Unicode (popularny ISO 8859-2 nie jest niestety obsługiwany prawidłowo). Od wymienionych poprzednio narzędzi jest też znacznie prostszy w instalacji - jest pojedynczym plikiem wykonywalnym, nie wymagającym do pracy żadnych dodatkowych aplikacji ani modułów (poza biblioteką OpenSSL, niezbędną do szyfrowania połączeń). Po uruchomieniu nasłuchuje na porcie 4200 (można to zmienić odpowiednim parametrem wywołania) oczekując przychodzących połączeń HTTPS (połączenia nieszyfrowane, zwykłym protokołem HTTP, są automatycznie przekierowywane na HTTPS). Gdy takie połączenie zostanie nawiązane, uruchamiana jest standardowa sesja logowania do systemu (program /bin/login), tak jak przy zwykłym logowaniu użytkownika z konsoli systemowej czy np. przez telnet.

Niestety, widać iż program jest jeszcze we wczesnej fazie rozwoju, co skutkuje sporą ilością błędów. Program daje się w chwili obecnej skompilować jedynie w systemie Linux - w innych systemach sygnalizowany jest brak niektórych funkcji. Nie działają prawidłowo opisane w dokumentacji opcje, pozwalające uruchomić po nawiązaniu połączenia inny program zamiast /bin/login (np. konkretną aplikację przeznaczoną bezpośrednio do pracy użytkowników). Istnieje również problem z certyfikatem SSL: jeżeli w katalogu programu brak pliku z takim certyfikatem, zgodnie z dokumentacją program próbuje sam wygenerować sobie certyfikat przy użyciu funkcji pakietu OpenSSL. Niestety, zawiesza się na tej czynności; w katalogu powstaje pusty plik certificate.pem, a połączenia z portem 4200 nie da się nawiązać. Dlatego przed uruchomieniem programu niezbędne jest ręczne wygenerowanie certyfikatu, bądź - jeżeli mamy już na serwerze taki certyfikat - skopiowanie go pod nazwą certificate.pem do katalogu programu. Sporo do życzenia pozostawia również dokumentacja - jest bardzo niekompletna i wielu bardziej skomplikowanych funkcjonalności trzeba się domyślać.

Te wszystkie niedociągnięcia mają jednak szansę być poprawione, gdyż projekt jest "świeży" i intensywnie rozwijany, a już w obecnej postaci swoją podstawową funkcję - umożliwienie dostępu do shella przez przeglądarkę WWW - spełnia więcej niż dobrze. Serdecznie polecam instalację go na swoich serwerach wszystkim, którym zdarza się mieć potrzebę zdalnego dostępu do swojego konta z miejsca, gdzie nie można bezpośrednio skorzystać z SSH!

komentarze (0) >>>