< > wszystkie blogi

salival's absurdlog

Potwornie absurdalny blog

Zdalne połączenie z komputerem w pracy przez zdalny desktop - tutorial

11 marca 2008

1. Wstępniak.

Ok, po pierwsze nie jest to blog, a tekst ten został napisany, bo już kilkukrotnie zadawno mi pytanie, jak można połączyć się na zdalny pulpit z komputerem, który jest za firewallem. Głównie pytania te były kontekście połączenia dom->praca, aby w sobotni poranek, gdy szef zadzwoni nie trzeba było na gwałt do biura lecieć, ale pewne rzeczy zrobić z domu.


Tutorial ten zakłada, że działamy na WindowsXP i jest to typ tutoriala "for dummies" :D. Użytkownikom Linuxa raczej nie ma sensu tłumaczyć jak postawić SSHD, jakiego klienta RDP lub VNC użyć ;P

2. Co potrzebujemy?

* komputera w pracy ( zakładam, że działa on pod kontrolą WindowsXP i planujemy skorzystać z usługi Remote Desktop Connection ) * komputera w domu z PUBLICZNYM IP ( i raczej stałym, choć to nie jest wymagane ). Komputery działające w Neozdradzie powinny spełniać ten warunek. Generalnie, komputer w domu nie może być za firewallem lub musi być możliwość wyprowadzenia portów na zewnątrz na routerze. * Trochę oprogramowania: - OpenSSH dla Windows ( w wersji samodzielnej lub w pakiecie Cygwin ), - Putty.exe OpenSSH może pełnić również rolę klienta, jednak zakładam, że na pewnej ilości komputerów pracowych conajmniej źle widziane jest instalowanie własnego oprogramowania. Putty nie wymaga instalacji, po prostu ściagsz plik exe i działa ;) Oczywiście można sobie wcześniej przygotować odpowiednią paczkę z OpenSSH, ale to ma być tutorial for dummies, więc przynajmniej na razie pominę ten fragment. Dodatkowo Putty, mimo że oferuje interfejs graficzny, to stanowi klienta SSH uruchamialnego z poziomu linii komend ( czyli tak jak i komenda ssh ).

3. Instalacja OpenSSH na komputerze domowym.

Jak już napisałem wcześniej, są dwie możliwości instalacji OpenSSH: - Zainstalować OpenSSH wraz z pakietem Cygwin ( akurat tą możliwość bardziej popieram ) - Zainstalować OpenSSH jako aplikację standalone ( która i tak zawiera w sobie okrojonego Cygwin'a ) My wybierzemy opcję drugą jako tą łatwiejszą i bardziej "for dummies". Pakiet OpenSSH można zdobyć np. tu: OpenSSH for Windows Nie jest on najnowszy datą, jednak powinien wystarczyć do naszych celów. Z kolei jeśli zdecydujemy się na Cygwin'a wtedy musimy ręcznie wybrać pakiety: Cygrunsrv, OpenSSH i przygotować się na trochę pracy, której tu nie opiszę, chyba że ktoś będzie tym zainteresowany. UWAGA! Jeśli już masz zainstalowanego Cygwina, to użyj jego zamiast OpenSSH w wersji standalone, bo mogą się pogryźć. Instalator OpenSSH sam wykrywa czy już masz Cygwina. UWAGA! Instalujesz i robisz wszystko na koncie z uprawnieniami administratora! Instalacja jest względnie prosta. Po prostu odpalamy plik exe zawarty w ściągniętym archiwum i przechodzimy przez "next", "next"... gdzie trzeba to odpowiedzieć "yes" i już. Następnym krokiem jest zsynchronizowanie pliku z hasłami dla OpenSSH z hasłami Windows. Tutaj ważna rzecz: jeśli nie masz jeszcze przydzielonego hasła dla użytkownika, jako który się logujesz w Windows, to zób to czym prędzej. SSH nie pozwoli się zalogować na konto użytkownika, który nie ma hasła - wymogi bezpieczeństwa. Zakładam, że OpenSSH zainstalowane zostało w "c:\Program Files\OpenSSH". Teraz czeka nas troszkę pisania. Otwieramy start->run/uruchom i wpisujemy "cmd", naciskamy enter i naszym oczom ukazuje się czarna Windowsowa konsola ( użytkownicy Cygwina po prostu uruchamiają basha ;) ). Wpisujemy więc: cd "c:\Program Files\OpenSSH\bin" Teraz musimy uzupełnić plik /etc/group ( grupy ): mkgroup -l > ..\etc\group mkgroup -d >> ..\etc\group oraz /etc/passwd ( hasła ): mkpasswd -l > ..\etc\passwd mkpasswd -d >> ..\etc\passwd dla pewności zatrzymajmy serwis sshd: net stop opensshd teraz możemy uruchomić serwis sshd ponownie: net start opensshd Użytkownicy Cygwina najprawdopodobniej użyją Cygrunsrv oraz "sshd" jako nazwy samego serwisu sshd zamiast "opensshd", w tym przypadu start serwisu odbywa się przez wpisanie w shellu: cygrunsrv -S sshd Od tego momentu SSHD działa w systemie i będzie zawsze startować razem z Windowsem ( czyli wszystko co popełniliśmy do tej pory robimy tylko raz ;) Ufff... ). Dla przetestowania czy wszystko jest ok proponuję ściągnąć klienta ssh ( jest zawarty również w OpenSSH, jako komenda ssh, ale po pierwsze nie mam pewności, że ścieżka systemowa ma dopisany katalog z komendami do OpenSSH a po drugie nie chcę zatruwać was kolejnym bawieniem się w "wpisz cd... itp" ;) ). Putty zdobywamy stąd: Putty Uruchamiamy i w pierwszym oknie, mając jako aktywną zakładkę "Session" wpisujemy w polu "Host name ( or IP address )" adres lokalny naszego komputera czyli 127.0.0.1 . Port pozostawiamy taki jak jest, czyli 22 i klikamy "Open". Otworzy się okno pytające o login, więc podajemy login pod jakim się logujemy do XP oraz chwilę potem hasło. Wpisujemy hasło i powinniśmy zobaczyć radośnie migający kursor i linię komend ;) Jeśli okazuje się, że hasło nie chce przejść i Putty ponawia prośbę o podanie hasła, więc najprawdopodobniej: - mkpasswd i mkgroup nie powiodło sie, wykonaj ten etap jeszcze raz, zatrzymaj opensshd i wystartuj ponownie. - masz zainstalowanego cygwina i to wprowadza zamieszanie w kwestii ścieżek. Może sie zdarzyć tak, że okno po prostu zniknie po podaniu hasła. Nie ma co się martwić, oznacza to, że ścieżki systemowe nie są ustawione poprawnie tak aby wskazywać na powłokę o dziwnej nazwie "switch.exe" znajdującą się w "C:\Program Files\OpenSSH\bin". "Switch.exe" to po prostu to samo co niegdyś "command.com" czy obecnie "cmd.exe". Faktem jest, że nie będzie nam do niczego potrzebny i możemy to pominąć. W przypadku Cygwina z kolei powinien uruchomić się Bash.

4. Ustawienie komputera pracowego.

UWAGA! Upewnij się, że na komputerze domowym nie masz uruchomionej usługi Remote Desktop, która blokuje port 3389. Standardowy klient RDP w Windows nie pozwala na połączenie się z dowolnym portem, więc port 3389 na komputerze w domu musi być zwolniony. W planie mamy zamiar połączyć się ze zdalnym pulpitem. Musimy w takim wypadku uruchomić taką usługę. Klikamy w "Mój komputer" prawym klawiszem myszy i wybieramy "Właściwości". Wybieramy zakładkę "Remote/Zdalne" ( nie wiem jaka polska nazwa jej jest ;) ). Będą tam dwa pola do zaznaczenia: "Remote Assistant" oraz "Remote Desktop". Zaznaczyć oba, kliknąć "Ok" i już. Ze wspomnianego linka: Putty ściągamy putty. Możemy uruchomić go na dwa sposoby: - tak jak zwykłą komendę ssh z linii poleceń, - z interfejsem graficznym. Generalnie, metoda z linią poleceń jest szybsza ;) Po prostu uruchamiamy cmd.exe ( znów: start->uruchom->cmd.exe ) i pamiętając gdzie zapisaliśmy putty wpisujemy z pełną ścieżką: c:\putty.exe -N -R 3389:localhost:3389 login_w_domu@adres_ip_kompa_w_domu Zakładam tu, że putty.exe jest po prostu w głównym katalogu na C:. Jako login_w_domu należy wpisać swój login, jako adres_ip_kompa_w_domu należy podać swój PUBLICZNY adres IP ( lub domenę, jeśli ma się taką przypisaną ). np: c:\putty.exe -N -R 3389:localhost:3389 salival@213.180.130.200 Zostaniemy poproszeni o hasło i kiedy podamy je poprawnie terminal pójdzie w stan zawieszenia. Tzn on ciągle działa, ale nie przyjmuje żadnych operacji z zewnątrz. Tak go zostawiamy. Od tego momentu mamy otwarty tunel między komputerem w pracy a komputerem w domu dla portu 3389 ( Remote Desktop ) dla zwrotnego połączenia ( chyba tak się tłumaczy reverse connection? ). To jest stan jaki powinniśmy pozostawić kiedy np. kończymy pracę i chcemy by komputer dalej pozostał do naszej dyspozycji. W tym przypadku Putty działa jak komenda ssh z OpenSSH z tą różnicą, że jeśli użyjemy ssh możemy ją wrzucić w tło: ssh -f -N -R 3389:localhost:3389 salival@213.180.130.200 Jeśli komuś uda się przemycić OpenSSH do pracy, wtedy putty będzie zbędny. Z racji jednak takiej, że na ogół instalowanie czegokolwiek nie jest zbytnio hmm.. wskazane na służbowych komputerach, to Putty jest świetną alternatywą ( można go nosić na flashdrive jak ktoś chce, to tylko jeden mały plik ). Co do interfejsu graficznego Putty, nie chcę się teraz nad tym rozwodzić. Jak znajdą się osoby zainteresowane, to wtedy wrzucę tutorial ustawienia sesji.

5. Pora się połączyć!

Wracamy do domu, zaczyna się weekend, szef dzwoni, że coś się sypnęło, a to coś trzeba przygotować, a to sru tu tu tu itp. Więc co robimy? Biegniemy do pracy? Nie! Mamy w końcu połączenie między komputerem w domu a komputerem pracowym! Ustanawiamy połączenie za pomocą klienta Remote Desktop poprzez "Start->Akcesoria->Komunikacja->Remote Desktop Connection ( po polsku może nazywać się to inaczej ). Jako adres komputera wpisujemy... własny adres lokalny czyli 127.0.0.1 i... już powinniśmy móc zalogować się na zdalnej maszynie ;)

6. Problemy techniczne.

Połączenie musi być ustanowione cały czas. Niestety w momencie jeśli wyłączymy komputer w domu lub nastąpi jakaś awaria łącza Putty utraci połączenie. Aby je odzyskać należy po prostu uruchomić Putty lub ssh w pętli, tak by w momencie wyjścia jeszcze raz nawiązało połączenie. Problemem może się okazać prośba o hasło - to się da przeskoczyć poprzez autentyfikację za pomocą kluczy. Jak ktoś będzie bliżej tym zainteresowany to mogę opisać ;) Warto w każdym razie zabezpieczyć się przed taką awarią i skonfigurować komputer pracowy tak aby: - po resecie automatycznie otwierał połączenie - po awarii łącza czy też resecie domowego kompa automatycznie ponawiał połączenie I to by było na tyle!

 

Dobra, dobra. Chwila. Chcesz sobie skomentować lub ocenić komentujących?

Zaloguj się lub zarejestruj jako nieustraszony bojownik walczący z powagą

Napędzana humorem dzięki Joe Monsterowi