Zdalny pulpit wykorzystywany jest często po to, by swobodnie zarządzać komputerem, do którego nie mamy fizycznego dostępu, a który często jest od nas oddalony o dziesiątki lub nawet tysiące kilometrów. To rozwiązanie szczególnie popularne w firmach informatycznych, gdzie służy do prowadzenia zdalnej pomocy technicznej bez potrzeby jechania do klienta, ale nie tylko…
W dobie tanich serwerów dedykowanych i VPS możemy wykorzystać zdalny pulpit do pracy, na przykład gdy potrzebujemy szybkiego łącza lub kiedy potrzebna jest nam duża moc obliczeniowa do konwertowania większej ilości plików, a nasz domowy/biurowy komputer nie wystarczy lub zwyczajnie nie możemy sobie pozwolić na jego obciążenie, bo służy nam do codziennej pracy. I wreszcie – na zdalnej maszynie możemy włączyć wykonywanie jakiegoś zadania (które z założenia potrwa długo), odłączyć się od pulpitu i spokojnie wyłączyć nasz domowy/biurowy laptop, po czym udać się na zimne piwo. Oczywiście należy zaznaczyć, że wdrażanie takiego rozwiązania (jako dodatkowego) na serwerach, na których mają docelowo działać inne usługi (np. serwer WWW), po to tylko, by nimi zarządzać, mija się z celem i powoduje niepotrzebne zużywanie zasobów. Jeśli już stawiamy serwer ze zdalnym pulpitem, to stawiajmy go pod konkretne potrzeby i niech to będzie osobny serwer dedykowany/VPS przeznaczony do tego celu.
W tym artykule pokażę jak uruchomić zdalny pulpit w systemie Debian 7 (na innych wersjach Debian nie ma praktycznie żadnych różnic, to samo tyczy się Ubuntu) przy użyciu VNC – oczywiście są też inne dobre rozwiązania, chociażby TeamViewer, ale jest on darmowy tylko do użytku niekomercyjnego, a cena do użytku komercyjnego jest kosmiczna. Zakładam, że mamy zainstalowany i zabezpieczony system operacyjny, odpowiednie repozytoria w pliku /etc/apt/sources.list i zrobiliśmy:
apt-get update
Poniższy tutorial ma na celu pokazanie jak zrobić to szybko bez zbędnego zagłębiania się w szczegóły – czyli dla kogoś, kto chciałby szybko zainstalować i zacząć korzystać.
Instalujemy środowisko graficzne
Najpierw musimy wybrać i zainstalować jakieś środowisko graficzne. Nie polecam GNOME, ani tym bardziej KDE – nie potrzebujemy przecież wodotrysków, tylko środowiska, które pozwoli nam na swobodną pracę, a jednocześnie zużyje jak najmniej zasobów systemowych. Dobrym wyborem jest XFCE, ale (według mnie) jeszcze lepszy do takich celów jest LXDE, dlatego pokażę to na przykładzie właśnie tego środowiska. A więc do dzieła! Instalujemy potrzebne pakiety:
apt-get install lxde
apt-get install xorg
Instalujemy vnc4server
apt-get install vnc4server
Możemy od razu zmienić port, tak aby nasz VNC nie pracował na standardowym porcie w tym celu edytujemy plik /etc/vncserver i w linii 212 zmieniamy $vncPort z 5900 na wymyślony przez nas port, dla przykładu niech to będzie port 5555. Należy zwrócić uwagę na fakt, że sesje VNC będą miały port wyższy od tego, który podaliśmy w $vncPort, tak więc odpowiednio sesja 1 będzie na porcie 5556, sesja 2 na porcie 5557 itd.
Uruchamiamy i konfigurujemy vnc4server.
Logujemy się jako użytkownik, który będzie korzystał ze zdalnego pulpitu i uruchamiamy komendą:
vnc4server
Podczas pierwszego uruchomienia dostaniemy pytanie o hasło – nadajemy trudne, nie słownikowe hasło.
Edytujemy plik /home/nasz_user/.vnc/xstartup (lub /root/.vnc/xstartup dla konta root) i dopisujemy na końcu (źródło):
lxsession &
pcmanfm –desktop –profile=LXDE &
lxpanel &
Kończymy sesję:
vnc4server -kill :1
i uruchamiamy od nowa:
vnc4server
W ten sposób przeładowaliśmy ustawienia i nasz zdalny pulpit już działa. Teoretycznie, a w zasadzie i praktycznie, już w tym momencie można się połączyć, ale uwaga – takie połączenie jest nieszyfrowane, dlatego w dalszej części skonfigurujemy tunel SSH.
Ustawiamy tunel SSH
W dzisiejszym przykładzie do połączenia z SSH wykorzystaliśmy program Putty, więc pokażę jak szybko ustawić tunel SSH. Jest to dziecinnie proste.
Otwieramy program i z drzewa kategorii wybieramy Connection => SSH => Tunnels. W polu Source port wpisujemy jakiś dowolnie wymyślony port, do którego będziemy łączyli się lokalnie klientem VNC, a w polu Destination podajemy adres IP naszego serwera oraz port, na którym mamy VNC w formie:
adres_IP:port
w naszym przykładzie:
adres_IP:5556
Następnie klikamy Add. Należy pamiętać, że jeśli ustawiliśmy $vncPort na 5555, to sesja nr. 1 będzie na porcie 5556, czyli każda kolejna sesja na porcie o jeden numer wyżej. Dla ułatwienia późniejszego korzystania możemy sobie w Session od razu zapisać całą konfigurację pod dowolną nazwą – bo zakładam, że podanie IP oraz portu, na którym mamy SSH, jest oczywiste. Niektóre „szkoły” mówią jeszcze, aby w Connection => SSH włączyć opcję compression, ale, mówiąc szczerze, nie zauważyłem różnicy…
Gotowe 🙂 Łączymy się z SSH i odpalamy ulubionego klienta VNC (może to być np. program o nazwie UltraVNC) – wpisujemy:
localhost:port
Przykładowo, jeśli w Source port ustawiliśmy port 12345, to wpisujemy:
localhost:12345
Miłej pracy. Albo zabawy 🙂
PS. W zasadzie najlepiej byłoby na potrzeby VNC stworzyć osobnego użytkownika, z ograniczonymi uprawnieniami, i z niego odpalać vnc4server, ale wszystko zależy od tego, co chcemy robić przez ten zdalny pulpit. W niektórych przypadkach trzeba to zrobić na koncie super użytkownika (root) – niemniej należy tego unikać 😉 Aby tego uniknąć, można na przykład (będąc zalogowanym jako zwykły użytkownik, już na zdalnym pulpicie) zalogować się na chwilę jako root, by zrobić co trzeba, lub użyć sudo. Tutaj możliwości i kombinacji jest wiele, każdy robi jak uważa 😉
A ja mam takie pytanie odnośnie edycji pliku /home/użytkownik/.vnc/xstartup
Nie mogę takiego pliku znaleźć pod rootem (#), a szukałem na lokalizacji domowej, a pod normalnym ($) wiadomy brak dostępu. Pod roota spokojnie wszystko ustawiłem, jedynie muszę putty’iego skonfigurować.