Artur Pyszczuk's blog...

"The code that is the hardest to debug is the code that you know cannot possibly be wrong."
Unknown
/home/linux/ssh/

Praca zdalna

Z pomocą pewnych narzędzi (czyt. programów) można pracować zdalnie. Co to znaczy? Znaczy to tyle, iż możemy siedzieć przy komputerze w jednym pokoju i korzystać z zasobów komputera stojącego w innym pomieszczeniu. Co więcej, odległość jaka jest pomiędzy dwoma komputerami nie ma znaczenia. Możemy wykonywać operacje na komputerze stojącym w innej miejscowości tak jakbyśmy pracowali na lokalnym komputerze (istnieją pewne ograniczenia).
Istnieje kilka protokołów do komunikacji z odległymi terminalami (stacje robocze - komputer PC). W tym miejscu ograniczę się jedynie do tych, a właściwie jednego - SSH, który jest bezpiecznym protokołem (czy. używa szyfrowania podczas transferu jakichkolwiek danych).

W dzisiejszych czasach routery są dość popularnym urządzeniem. Na rysunku 1 pokazany został schemat domowej sieci, w której występują dwa laptopy, oraz dwa komputery stacjonarne. W gruncie rzeczy przy pracy zdalnej (połączenie się), nie ma to większego znaczenia czy jest to komputer klasy PC, czy jest to laptop.


Schemat sieci domowej
Rys 1. Schemat sieci domowej.


Zwróćmy uwagę na dwa laptopy: gruby (192.168.0.101) oraz tomek (192.168.0.116). W dalszej części tego rozdziału pokaże jak połączyć się z laptopa tomek do laptopa gruby i pracować na nim.
Uwaga: Nazwy: gruby oraz tomek, to nazwy kont użytkowników na komputerze, nie nazwy hostów, jednak, aby nie mówić numerami IP, będę mówił: laptop tomek, laptop gruby.

Secure shell (SSH)

Przede wszystkim musimy zainstalować odpowiedni program, tak więc otwórz konsolę i wpisz:

$ sudo apt-get install ssh

Oczywiście musisz to zainstalować na obu komputerach. Jeden z nich pełni rolę serwera, drugi klienta, więc oba muszą mieć zainstalowanego ssh.
Ok, jeśli już wszystko jest zainstalowane, to trzeba spróbować się podłączyć. Połączenie jest proste, w konsoli wpisz

$ ssh nazwa_uzytkownika@adres_hosta

Tak jak wspomniałem, będę łączyć się z laptopa tomek (klient) do laptopa gruby (serwer), czyli u mnie to wygląda jak na rysunku 2.

Podłączenie się do zdalnego komputera
Rys 2. Podłączenie się do zdalnego komputera.


W pierwszej kolejności wpisujemy polecenie, terminal wyświetli nam informacje czy chcemy kontynuować połączenie, wpisujemy: yes i podajemy hasło do konta gruby. Jeśli hasło jest poprawne to zostajemy zalogowani do systemu i od tej chwili siedząc przy laptopie tomek faktycznie pracujemy na laptopie gruby, co zresztą widać.

Secure copy (SCP)

Kopiowanie plików z klienta na serwer (oraz na odwrót) odbywa się za pomocą programu SCP, który został zainstalowany podczas instalacji SSH.
Kopiowanie pliku z klienta na serwer w ogólnym przypadku wygląda następująco:

$ scp sciezka_do_pliku/plik_lokalny nazwa_uzytkownika@adres_hosta:sciezka_do_katalogu/

Jeśli powyższy zapis jest nie zrozumiały - nie przejmuj się. Na przykładzie pokaże jak to wygląda i wszystko będzie jasne.

Wysyłanie pliku z lokalnego komputera na zdalny
Rys 3. Wysyłanie pliku na zdalny komputer.


A więc tak:

Kopiowanie pliku z serwera na klienta w ogólnym przypadku wygląda następująco:

$ scp nazwa_uzytkownika@adres_hosta:sciezka_do_pliku sciezka_do_katalogu/

Przykład został pokazany na rysunku 4.

Wysyłanie pliku ze zdalnego komputera na lokalny
Rys 4. Wysyłanie pliku ze zdalnego komputera na lokalny.


Gdzie:

Kopiowanie katalogu wraz z zawartością z klienta na serwer w ogólnym przypadku wygląda następująco:

$ scp -r sciezka_do_katalogu/katalog nazwa_uzytkownika@adres_hosta:sciezka_do_katalogu/

Przykład został pokazany na rysunku 5.

Wysyłanie katalogu z lokalnego komputera na komputer zdalny
Rys 5. Wysyłanie katalogu z komputera lokalnego na komputer zdalny.


Gdzie:

Secure shell (SSH) oraz Secure copy (SCP) bez podawania hasła

Ciągłe wpisywanie hasła czy to przy łączeniu się ze zdalnym komputerem, czy też przy wysyłaniu plików jest bardzo męczące. Można temu zaradzić w następujący sposób - generacja kluczy. Aby wygenerować klucz w konsoli wpisz:

$ ssh-keygen -t rsa

Gdy zostaniemy poproszeni o wpisanie, w którym pliku generator ma zapisać klucz, klikamy poprostu enter. Po zapytaniu o hasło klikamy również enter. Wynik działania tego polecenia przedstawiony jest na rysunku 6.

Generowanie kluczy
Rys 6. Generowanie kluczy.


Następnym krokiem jest wysłanie wygenerowanego pliku na zdalny komputer. Zalogowanie się na zdalnym komputerze i utworzenie pliku authorized_keys z zawartością wysłanego przed chwilą pliku. W konsoli wpisz:

$ scp .ssh/id_rsa.pub gruby@192.168.0.101:~/

$ ssh gruby@192.168.0.101

$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

Wszystkie te czynności wyglądają tak jak na rysunku 7.

Przesyłanie klucza oraz tworzenie pliku
Rys 7. Przesyłanie klucza oraz tworzenie pliku authorized_keys. Logowanie się bez użycia hasła


Po zrobieniu tych czynności będziemy mogli logować się na serwer bez podawania hasła. Również pliki będziemy mogli wysyłać bez potrzeby wpisywania hasła. Co zostało pokazane na rysunku 7 oraz 8.

Przesyłanie klucza oraz tworzenie pliku
Rys 8. Wysyłanie katalogu bez wpisywania hasła




Some rights reserved 2010 - 2015 Artur Pyszczuk

| Strona Główna | Kontakt |