Vodič kroz Ubuntu Desktop 12.04 - Udaljeni pristup na Ubuntu putem protokola SSH

Izvor: HrOpenWiki
Inačica od 14:41, 18. veljače 2013. koju je unio/unijela Rpremuz (razgovor | doprinosi)

(razl) ←Starija inačica | vidi trenutačnu inačicu (razl) | Novija inačica→ (razl)
Skoči na: orijentacija, traži

Instaliranje SSH-servera

SSH je mrežni protokol koji omogućuje da se između dva računala uspostavi sigurni (kriptirani) kanal. Prisluškivanjem toka podataka kroz takav kanal ne mogu se doznati stvarni podatci već samo kriptirani. SSH se obično koristi za prijavu s jednog računala na drugo putem tekstualnog sučelja čime se može ostvariti i daljinska administracija sustava. No SSH omogućuje i tuneliranje, tj. preusmjeravanje prometa s nekog drugog TCP-porta kroz sigurni kanal, a također i kompresiju podataka koji se prenose takvim kanalom.

Kada se Ubuntu koristi u okruženju male kućne mreže s više računala ili u korporativnoj mreži, vrlo je korisno na njemu imati instaliran OpenSSH Server koji omogućuje udaljeni pristup sustavu koristeći protokol SSH. Iz komandne ljuske on se može instalirati putem sljedeće naredbe (koja instalira pakete openssh-server i openssh-client):

$ sudo apt-get install ssh

Za kriptiranje podataka SSH koristi kriptografiju koja se temelji na korištenju para privatnog i javnog ključa (eng. public-key cryptography). Zbog toga se tijekom instaliranja SSH-servera napravi jedan par privatnog i javnog ključa (eng. private and public keys). Privatni ključ je tajni ključ koji smije biti dostupan samo SSH-serveru, dok javni ključ treba imati svaki SSH-klijent koji želi komunicirati s tim SSH-serverom (ključevi su spremljeni u datoteke /etc/ssh/ssh_host_*). Za javni ključ bitno je znati njegov RSA-potpis (eng. RSA public key fingerprint) – niz znakova koji jednoznačno predstavlja taj ključ – koji se na OpenSSH Serveru može dobiti sljedećom naredbom:

$ sudo ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
2048 20:28:21:23:8a:21:0b:6b:85:38:d1:f4:87:85:fb:97  root@vm-ubuntu-1204 (RSA)

RSA-potpis je tu niz heksadekadskih brojeva odvojenih dvotočkom (:).

Korištenje SSH-klijenta

Da bi se uspostavila veza na SSH-server, potrebno je koristiti neki SSH-klijent. Na Ubuntu je to program ssh (OpenSSH Client) koji omogućuje rad u tekstualnom sučelju (komandnoj ljuski). Primjer spajanja na računalo host.foo.bar za korisnika "ivo" sa ssh:

$ ssh ivo@host.foo.bar

Kada SSH-server započinje komunikaciju s SSH-klijentom, on klijentu ponudi svoj javni ključ koji mu je potreban za kriptiranje podataka. Ako SSH-klijent ne može automatski provjeriti vjerodostojnost tog javnog ključa, tj. dolazi li ključ stvarno sa servera na kojeg se spaja, on traži da korisnik napravi tu provjeru. Kada korisnik jednom odobri taj javni ključ, on će biti zapamćen za dotičnog korisnika i više mu se neće postavljati takav upit.

Provjeru vjerodostojnosti javnog ključa korisnik praktično provodi tako da usporedi RSA-potpis ključa kojeg mu daje server s RSA-potpisom kojeg je dobio nekim sigurnim komunikacijskim kanalom, tj. na takav način da taj potpis nije izmijenjen u komunikacijskom kanalu – npr. to može biti telefonski razgovor s vlasnikom javnog ključa, telefaks poruka ili SMS-poruka s istim, dohvaćanje ključa s web-stranice koja omogućuje sigurnu komunikaciju protokolom HTTPS. (Ta provjera vjerodostojnosti javnog ključa potrebna je zato što postoji mogućnost da se neki uljez ubaci u komunikacijski kanal između SSH-servera i SSH-klijenta te umjesto pravog javnog ključa ponudi neki svoj javni ključ, za kojeg on posjeduje privatni ključ, koji bi mu zatim omogućavao da dekriptira tok podataka između SSH-servera i SSH-klijenta.)

(Napomena: Na sustavima Microsoft Windows popularni SSH-klijent je program PuTTY.)

Udaljeni pristup datotekama putem SFTP-klijenta

Kada je na Ubuntu instaliran OpenSSH Server, na njegov datotečni sustav moguće je pristupiti s drugog računala preko računalne mreže koristeći neki SFTP-klijent. Prilikom prijenosa podataka putem takve veze koristi se kriptiranje i kompresija. U nastavku su opisana dva SFTP-klijenta koji se mogu koristiti na Ubuntu (dakle kada se s jednog Ubuntua želi pristupiti datotekama drugog Ubuntua).

  • U spomenutom paketu openssh-client dolazi program sftp koji radi kao SFTP-klijent u tekstualnom sučelju. Primjer spajanja na računalo host.foo.bar za korisnika "ivo":
$ sftp ivo@host.foo.bar
Nakon zadavanja lozinke za dotičnog korisnika i uspješne prijave sftp će čekati unos naredbi za rad s datotekama slično kao što se to radi u tekstualnim FTP-klijentima (popis naredbi daje naredba help). Upotreba klasičnog protokola FTP za prijenos datoteka ne preporuča se jer on ima vrlo loša sigurnosna svojstva.
  • Kao grafički SFTP-klijent može se koristiti program Nautilus – već spomenuti program za upravljanje datotekama. Da bi se u njemu ostvarila veza s udaljenim datotečnim sustavom putem protokola SSH, potrebno je putem njegovih izbornika pozvati: File → Connect to Server... Otvorit će se dodatni prozor u kojem treba upisati parametre veze:
    • Type: SSH
    • Server: mrežna adresa SSH-servera na kojeg se želimo spojiti (npr. host.foo.bar)
    • Port: broj TCP-porta koji se koristi za vezu (podrazumijevana vrijednost je 22)
    • Folder: početni direktorij na kojeg se želimo spojiti na serveru (podrazumijeva se osnovni direktorij /)
    • User Name: korisnički račun za prijavu na SSH-server (ako se ne zada, koristit će se korisničko ime trenutačnog lokalnog korisnika)
    • Password: lozinka za prijavu na SSH-server
    • Kliknuti na gumb Connect da se uspostavi veza na SSH-server. U Nautilusovom popisu mjesta (pod Network) pojavit će se dodatna veza na zadani direktorij SSH-servera.
    • Uspostavljena veza može se prekinuti tako da se sporednom tipkom miša klikne na ime mrežne veze i izabere opcija Unmount.
  • Još jedan popularni grafički SFTP-klijent je program FileZilla.

Montiranje udaljenog direktorija koristeći protokol SSH

Još jedan način pristupanja na udaljeni datotečni sustav putem mrežnog protokola SSH je korištenje servisa SSHFS koji omogućuje da se neki udaljeni direktorij montira na neki lokalni direktorij i zatim koristi kao da je dio lokalnog datotečnog sustava iz bilo kojeg programa.

  • SSHFS se može instalirati pomoću sljedeće naredbe:
$ sudo apt-get install sshfs
  • Da bi se koristio takav način pristupa, u jezgru sustava (Linux) treba učitati modul FUSE:
$ sudo modprobe fuse
  • Korisnike koji će koristiti taj modul treba dodati u grupu "fuse" na sljedeći način (akcija postaje aktivna nakon sljedeće prijave dotičnog korisnika na sustav):
$ sudo adduser username fuse
  • Korisnik sada može montirati udaljeni direktorij na lokalni direktorij pomoću sljedeće naredbe:
$ sshfs remote_user@remote_host:/remote_path local_path
gdje su:
remote_user – korisnički račun za prijavu na udaljenom sustavu
remote_host – mrežna adresa udaljenog sustava
/remote_path – putanja direktorija na udaljenom datotečnom sustavu
local_path – putanja lokalnog direktorija na kojeg se montira udaljeni direktorij (lokalni direktorij treba biti prazan)
Naredba može tražiti da korisnik provjeri RSA-potpis javnog ključa sa SSH-servera te da unese lozinku za korisnički račun na udaljenom sustavu. Nakon toga korisnik može pristupati udaljenom direktoriju kroz zadani lokalni direktorij (ostali korisnici neće imati pristup na tako montirani direktorij osim ako se ne zadaju dodatne opcije za naredbu sshfs).
  • Za demontiranje udaljenog direktorija treba pozvati naredbu:
$ fusermount -u local_path

Idi na: Sadržaj | < Prethodno poglavlje | Sljedeće poglavlje >