Obecnie posiadam dwa komputery(napędzane Ubuntu 8.10), które współdzielą jeden monitor. Niejednokrotnie zdarza się sytuacja, w której oba pracują w tym samym czasie. Toteż często zachodzi potrzeba, przełączania się między nimi. Dotychczas robiłem to w niezbyt wyrafinowany sposób – wykorzystywałem funkcje, jakie oferuje monitor. Naciskałem na panelu przednim odpowiedni przycisk, dzięki czemu jedno źródło sygnału było fizycznie przełączane na drugie. Była to typowo sprzętowa funkcja, realizowana na poziomie elektroniki monitora. W dzisiejszym artykule pokażę Wam, jak z powodzeniem zastąpić ją szybszymi i potężniejszymi metodami softwarowymi.
Opisany wyżej sposób pracy na dwóch komputerach ma tą zaletę, że nie potrzebuje do swojego działania żadnego dodatkowego oprogramowania i jest niezależny od systemu operacyjnego. Niestety te dwa plusy, to w zasadzie koniec zalet. Sprawa wygląda znacznie gorzej, gdy rozpatrzymy wady tej metody. Po pierwsze mamy wybór, albo praca na jednym albo na drugim komputerze. Samo przełączenie trwa 2-3 sekundy i z własnego doświadczenia wiem, że potrafi to być bardzo irytujące. Szczególnie kiedy przyjdzie nam dokonać tej operacji, kilka razy pod rząd. W czasach gdy używałem innego systemu operacyjnego, godziłem się z tymi mankamentami, bo nie miałem innego wyjścia. Mało tego, bardzo sobie tą metodę chwaliłem i nawet nie chciałem słyszeć o zakupie następnego monitora w przyszłości, który nie umożliwiałby podłączenia dwóch zestawów ;) Dzisiaj dawne podejście, wydaje mi się zabawne. Owszem korzystam od czasu do czasu z tego, najprostszego rozwiązania. Jednak z każdym dniem przycisk umożliwiający jego inicjalizację, staje się coraz mniej eksploatowany. Wszystko dzięki możliwościom, jakie daje system Ubuntu. Poniżej przedstawię metody, które z powodzeniem sprawdzają się w moim przypadku. Stosuję je w sieci lokalnej, ale naturalnie nic nie stoi na przeszkodzie, aby nie można było ich użyć, także na większe odległości(każda z nich oparta jest o IP komputera). W artykule postaram się pokazać wszystkie czynności krok po kroku, tak aby początkujący użytkownicy nie mieli najmniejszego problemu z wykonaniem oraz ze zrozumieniem, tego co się będzie działo na ekranie.
Serwer – komputer do którego będziemy uzyskiwali zdalny dostęp
Klient – komputer za pomocą którego będziemy się łączyć z Serwerem
VINAGRE I TSCLIENT
Najprostszą metodą na uzyskanie zdalnego dostępu do innego komputera, jest skorzystanie z narzędzi, które zostały dostarczone wraz z systemem operacyjnym. Znajdziesz je otwierając menu Programy w zakładce Internet.
Vinagre
Vinagre czyli przeglądarka zdalnych pulpitów. Jest to nic innego, jak prosty klient VNC. W obecnej wersji nie obsługuje on protokołu RDP oraz brak w nim kilku funkcji spotykanych w innych tego typu programach. Nie można określić stopnia kompresji obrazu, ilości klatek na sekundę czy też głębi kolorów. Dlatego jego wydajność przy małej przepustowości sieci, może nieco szwankować. Ale gdy będziemy wykorzystywać go lokalnie, to powyższe braki nie będą stanowić najmniejszego problemu. Do plusów należy zaliczyć interfejs oparty o zakładki, a także możliwość jednoczesnego podłączenia do wielu zdalnych komputerów.
Aby klient miał możliwość dostępu, musisz na serwerze wykonać następujące kroki.
- wpisać w terminalu: vino-preferences
- zaznaczyć pole: Zezwolenie innym użytkownikom na podgląd pulpitu
- odznaczyć: Pytanie o potwierdzenie a w zamian ustalić hasło dostępowe
Po stronie klienta uruchom program Vinagre i wybierz z listy komputer z którym chciałbyś się połączyć. Jeśli jego nazwa automatycznie nie pojawi się i lista będzie pusta. To wystarczy kliknąć przycisk Połącz i przeszukać manualnie sieć lokalną.
Tsclient
Tsclient jest lekarstwem na bolączki, które mogą doskwierać użytkownikom Vinagre. Na starcie oferuje protokoły: RDP oraz RDPv5, natomiast po dograniu innych klientów, umożliwia współpracę z VNC, XDMCP oraz ICA. Dzieje się tak, ponieważ tsclient jest w rzeczywistości nakładką, pozwalającą kontrolować z jednego miejsca, narzędzia obsługujące różne protokoły.
Chcąc ją wykorzystać jako zamiennik dla Vinagre. Konieczna jest instalacja alternatywnej przeglądarki VNC. Osobiście przetestowałem: xvnc4viewer oraz xtightvncviewer. Oba programy są dostępne w standardowym repozytorium. Jeśli miałbym polecić któryś z nich, to byłby to xvnc4viewer. W przeciwieństwie do xtightvncviewera, nie sprawił on żadnych niespodzianek. Tight byłby równie dobry, gdyby nie problemy z paskami służącymi do przewijania ekranu – raz działały a innym razem już nie. Ale być może jest to sytuacja jednostkowa, więc warto go przetestować i sprawdzić czy u Was będą występowały podobne niedogodności.
SSH
OpenSSH
Przedstawionym powyżej rozwiązaniom, daleko jest do doskonałości. Tym co rzuca się najbardziej w oczy, jest brak dyskrecji i prywatności naszych działań. Mała szybkość działania oraz z racji przejęcia kontroli nad pulpitem, uniemożliwienie ewentualnej pracy, osobie po stronie serwera. W tej sytuacji z pomocą przychodzi, owe słynne SSH – Secure Shell czyli bezpieczna powłoka. Najprościej mówiąc jest to protokół sieciowy, umożliwiający przesyłanie danych od klienta do serwera, przy jednoczesnym ich silnym szyfrowaniu. Zyskuje na tym znacznie bezpieczeństwo naszego połączenia. A gdy wziąć pod uwagę, kolejne cechy takie jak: bezpieczne przesyłanie plików, pracę w tle bez blokowania dostępu do komputera osobie po drugiej stronie, czy też możliwość uruchomienia aplikacji po stronie serwera a wyświetlenia jej na monitorze klienta. Jasnym staje się, dlaczego SSH praktycznie wyparł wszelką konkurencję w swej dziedzinie. O SSH i jego możliwościach, można by pisać opasłe tomiska. Ja ograniczę się do przedstawienia podstaw, które pozwolą wstępnie zapoznać się z tym wspaniałym narzędziem. Osoby zainteresowane szerszym opisem, odsyłam do: man ssh.
Zanim zaczniesz poznawać SSH, należy po stronie serwera a najlepiej także klienta, zainstalować pakiet openssh-server. Jest to zestaw narzędzi, będący darmową implementacja protokołu SSH. W tym celu, włącz terminal i wydaj polecenie:
- sudo aptitude install openssh-server
Zdalne logowanie z dostępem do terminala
Jest to najprostsza sytuacja. Logujemy się zdalnie do komputera i uzyskujemy dostęp do jego terminala. Od tego momentu wolno nam wykonać wszelkie działania, które w normalnym przypadku moglibyśmy zrobić, zasiadając fizycznie przed monitorem komputera do którego się podłączyliśmy.
- ssh użytkownik_zdalny@IP (np. ssh cgmax@192.168.52.7)
Polecenie pozwala na zainicjowanie sesji SSH, określenie nazwy użytkownika na którego będziemy się logować oraz adres IP komputera docelowego. Przy pierwszym połączeniu, zostaniemy poproszeni o potwierdzenie autentyczności komputera, poprzez akceptację jego klucza szyfrującego(jest to jednorazowa procedura).
Rozłączenie z serwerem następuje poprzez wpisanie:
- exit
Bezpieczne kopiowanie plików
Chcąc wykorzystać szyfrowane przesyłanie plików, za pomocą protokołu SSH. Do dyspozycji użytkownika zostają oddane dwa narzędzia, służące temu zadaniu: scp(Secure Copy) i sftp(Secure File Transfer Protocol). Pierwsze z nich sprawdzi się przy szybkim wysyłaniu mniejszej ilości plików, z kolei drugie to rodzaj bezpiecznego klienta FTP.
SCP
- Kopiowanie plików na serwer: scp plik użytkownik_zdalny@IP:ścieżka_zdalna
- Kopiowanie plików na klienta: scp plik użytkownik_lokalny@IP:ścieżka_lokalna
- Kopiowanie całych katalogów: scp -r katalog użytkownik@IP:ścieżka_docelowa
SFTP
- Zainicjowanie sesji z serwerem: sftp użytkownik@IP
- Kopiowanie plików na serwer: put nazwa_pliku
- Kopiowanie plików na klienta: get nazwa_pliku
Pliki z serwera domyślnie będą wysłane do folderu w którym znajdował się użytkownik, zanim nastąpiło połączenie z komputerem zdalnym. O tym jak zmienić ten katalog na inny, dowiesz się wydając polecenie: help. Zostaną po nim wyświetlone wszystkie możliwe komendy a także czynności, które można wykonać zarówno po stronie serwera jak i klienta.
Zwróć uwagę na znak [!] Wykona on dowolne polecenie na kliencie:
- !polecenie (np. !rm plik*)
Zakończenie działania sftp:
- bye/exit
Zdalne logowanie i aplikacje GUI
Jedną z ciekawszych możliwości jakie daje SSH, jest uruchomienie aplikacji na serwerze z równoczesnym przesłaniem jej interfejsu graficznego na komputer lokalny. Uruchomiony program do swojego działania, wykorzysta zasoby komputera zdalnego. Natomiast na barki naszego sprzętu spadnie jedynie, wyświetlenie wszystkiego na ekranie! Ograniczeniem jest brak przesyłania dźwięku, także o giercowaniu czy oglądaniu filmów można zapomnieć ;)
- ssh -X użytkownik@IP
Po zalogowaniu się na serwer, wystarczy wywołać odpowiedni program i pracować w nim tak jakbyśmy mieli go zainstalowanego lokalnie. Po prawej stronie, przykład tunelowanej sesji Xów i wywołania aplikacji: Analizator wykorzystania dysku.
Zdalne logowanie i pulpit GNOME
Ostatnią metodą którą chciałbym opisać, jest połączenie z pełnym dostępem do pulpitu GNOME(podobnie jak robił to klient VNC). Osobiście rzadziej z tej funkcjonalności korzystam, bo w znakomitej większości, wystarcza mi możliwość lokalnego wyświetlenia aplikacji z serwera. Porównując do innych sposobów, jej zainicjowanie jest również nieco bardziej czasochłonne. Jednak w przypadku, gdy będziemy musieli zrealizować większą liczbę prac(np. na komputerze kolegi ;)) to nie wykluczone, że dzięki tej metodzie uda nam się ukończyć wszystko najszybciej.
- Przejdź w tryb tekstowy [Ctrl]+[Alt]+[F1]
- sudo /etc/init.d/gdm stop
- xinit
- ssh -X użytkownik@IP
- gnome-session
Kopiowanie SFTP w trybie graficznym
Wykorzystując narzędzie Połącz z serwerem…, które jest dostarczone wraz z Ubuntu. Istnieje możliwość kopiowania za pomocą SFTP w trybie graficznym. Po podłączeniu serwer będzie widoczny w Nautilusie, jako kolejny punkt montowania. W związku z czym, raz zyskamy na szyfrowanej wymianie plików, a dwa na wygodzie trybu graficznego.
- Wybierz z menu Miejsca opcję Połącz z serwerem…
- Rodzaj usługi: SSH
- Serwer: IP komputera
- Nazwa użytkownika: wiadomo ;)
- Połącz
W przypadku częstego korzystania z tej metody, warto od razu przypisać odpowiednią zakładkę dla zasobu. Dzięki temu w przyszłości pracując w Nautilusie, będziemy mieli do niej szybki dostęp a dodatkowo ominie nas konieczność ponownego, żmudnego wpisywania parametrów połączenia.
Automatyzacja procesu uwierzytelniania
Sposobem na ułatwienie sobie życia są: Klucze i hasła szyfrujące. Jest to narzędzie pozwalające między innymi, na utworzenie prywatnego klucza SSH i wykorzystanie go do do połączeń z zaufanymi komputerami. Zniweluje to potrzebę każdorazowego uwierzytelniania się, poprzez podawanie hasła dla konta na serwerze. Zarówno przy połączeniach terminalowych, jak również korzystając z narzędzi trybu graficznego.
- Wybierz z menu Programy\Akcesoria opcję Klucze i hasła szyfrujące
- Rozpocznij tworzenie nowego klucza SSH
- Opisz go a w zaawansowanych opcjach określ typ szyfrowania i długość klucza
- Kliknij Utwórz i przygotuj
- Wprowadź hasło dla klucza prywatnego i je potwierdź
- W następnym okienku wpisz login oraz IP komputera z którym będziesz się łączyć
- Na zakończenie zostaniesz poproszony o wpisanie hasła dla konta na serwerze
Nowo utworzony klucz, zostanie automatycznie dodany do bazy zaufanych kluczy po stronie serwera. Teraz wystarczy, że zalogujesz się przez SSH, podasz hasło do klucza prywatnego(zaznaczając jego zapamiętanie) i od tego momentu, podawanie hasła dla konta nie będzie Cię już dotyczyło :)
PODSUMOWANIE
Niektóre z opisanych metod zdalnego dostępu, mogą z początku wydawać się bardzo trudne do ogarnięcia. Szczególnie gdy nigdy wcześniej, nie korzystałeś z podobnych narzędzi. Dlatego nie bez powodu, cały artykuł rozpocząłem od protokołu VNC. Dzięki dostarczonej Przeglądarce zdalnych pulpitów, jego uruchomienie to kwestia kilku kliknięć myszą po stronie serwera. Więc jest to idealny początek, na oswojenie się ze sterowaniem innym komputerem na odległość. Z czasem jego wady lub czysta ciekawość, popchnie Cię zapewne w stronę narzędzi o większych możliwościach. SSH oferuje ich ogromną ilość. To co przedstawiłem, jest jedynie wycinkiem reprezentującym jego podstawy. A mimo to zobacz na jak wiele sposobów został wykorzystany. Pomyśl tylko co Cię czeka, gdy się zagłębisz w zaawansowane funkcje? Wypada tylko życzyć – Powodzenia!
