Differences

This shows you the differences between two versions of the page.

Link to this comparison view

uso:laboratoare:ac:laborator-05:services [2021/11/02 21:03]
liza_elena.babu
uso:laboratoare:ac:laborator-05:services [2021/11/02 21:41] (current)
andrei.tivga [Conectarea folosind autentificare cu chei]
Line 126: Line 126:
  
  
-==== Rularea unei singure comenzi prin SSH ==== 
- 
-Atunci când ne conectăm la o stație avem acces la un shell pe care putem să îl folosim, dar dacă nu este necesar putem să rulăm mai multe comenzi, sau vrem să automatizăm rularea comenzilor pe alte stații putem folosi comanda SSH în felul următor: 
- 
-<code > 
-student@uso:​~$ ssh root@10.10.10.3 ip address show 
-root@10.10.10.3'​s password: 
-1: lo: <​LOOPBACK,​UP,​LOWER_UP>​ mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 
-    link/​loopback 00:​00:​00:​00:​00:​00 brd 00:​00:​00:​00:​00:​00 
-    inet 127.0.0.1/8 scope host lo 
-       ​valid_lft forever preferred_lft forever 
-544: eth0@if545: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc noqueue state UP group default 
-    link/ether 02:​42:​0a:​0a:​0a:​03 brd ff:​ff:​ff:​ff:​ff:​ff link-netnsid 0 
-    inet 10.10.10.3/​24 brd 10.10.10.255 scope global eth0 
-       ​valid_lft forever preferred_lft forever 
-546: eth1@if547: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc noqueue state UP group default 
-    link/ether 02:​42:​0b:​0b:​0b:​03 brd ff:​ff:​ff:​ff:​ff:​ff link-netnsid 0 
-    inet 11.11.11.3/​24 brd 11.11.11.255 scope global eth1 
-       ​valid_lft forever preferred_lft forever 
-550: eth2@if551: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc noqueue state UP group default 
-    link/ether 02:​42:​0c:​0c:​0c:​03 brd ff:​ff:​ff:​ff:​ff:​ff link-netnsid 0 
-    inet 12.12.12.3/​24 brd 12.12.12.255 scope global eth2 
-       ​valid_lft forever preferred_lft forever 
-</​code>​ 
-Am rulat comanda ''​%%ip address show%%''​ pentru a afișa setările de rețea pe stația de la adresa IP ''​%%10.10.10.3%%'',​ autentificându-ne ca utilizatorul ''​%%root%%''​. 
- 
-=== Execițiu - Rularea unei singure comenzi prin SSH === 
- 
-Rulați comanda ''​%%cat /​etc/​passwd%%''​ pe stația de la IP-ul ''​%%10.10.10.3%%''​ fără să intrați în interfața în linia de comandă de pe stații. Vă veți autentifica folosind utilizatorul ''​%%root%%''​ și parola ''​%%root%%''​. 
  
 ==== Transferul fișierelor la distanţă ==== ==== Transferul fișierelor la distanţă ====
Line 215: Line 186:
  
 Copiați directorul ''​%%/​usr%%''​ de pe stația de la adresa ''​%%10.10.10.3%%''​ în directorul home al utilizatorului curent. Vă veți autentifica pe stația de la distanță folosind utilizatorul ''​%%root%%''​ și parola ''​%%root%%''​. Copiați directorul ''​%%/​usr%%''​ de pe stația de la adresa ''​%%10.10.10.3%%''​ în directorul home al utilizatorului curent. Vă veți autentifica pe stația de la distanță folosind utilizatorul ''​%%root%%''​ și parola ''​%%root%%''​.
- 
-==== Conectarea folosind autentificare cu chei ==== 
- 
-În anumite scenarii ne dorim să evităm introducerea parolei pentru autentificarea la o stație la distanță. De exemplu, ne dorim să rulăm aceeași comandă pe 10 stații. Dacă am folosi autentificare bazată pe parolă ar fi nevoie să scriem într-un fișier în clar parola. Aceasta este o problema de securitate, deoarece dacă păstrăm o cheie în format text aceasta poate fi furată de cineva. O alternativă ineficientă este să scriem parola de 10 ori de mână. 
- 
-Pentru a trece de această problemă putem să folosim mecanismul de autentificare cu chei. Autentificarea cu chei presupune existență a două chei pereche: 
- 
-  * **cheia privată**: este o cheie secretă care este folosită de un client SSH pentru a se autentifica 
-  * **cheia publică**, este o cheie care este copiată pe stația unde este rulat serverul SSH. Cheia este folosită pentru identificarea clienților SSH care se conectează la server. 
- 
-Cele două chei sunt legate matematic, iar posesorul cheii private se poate autentifica pe orice sistem unde este disponibilă cheia publică. Câtă vreme posesorul cheii private este singurul care are acces la cheie, nimeni nu se va mai putea autentifica în locul său. 
- 
-Pentru generarea unei perechi de chei folosim comanda ''​%%ssh-keygen%%'':​ 
- 
-<code > 
-student@uso:​~$ ssh-keygen 
-Generating public/​private rsa key pair. 
-Enter file in which to save the key (/​home/​student/​.ssh/​id_rsa):​ 
-Enter passphrase (empty for no passphrase):​ 
-Enter same passphrase again: 
-Your identification has been saved in /​home/​student/​.ssh/​id_rsa 
-Your public key has been saved in /​home/​student/​.ssh/​id_rsa.pub 
-The key fingerprint is: 
-SHA256:​mN9IlWoU6bmSA1vvKBSAfAB/​Rg9GwTaAhqZ1Kc0vfHM student@uso 
-The key's randomart image is: 
-+---[RSA 3072]----+ 
-|=+o**o ​ ..       | 
-|+=++Oo ​ .. .     | 
-|+.o*oo....o ​     | 
-|.  o= =+Eo       | 
-|     ​Bo=S. ​      | 
-|    o ++oo       | 
-|   ​. ​  =o .      | 
-|    . . .        | 
-|     ​. ​          | 
-+----[SHA256]-----+ 
-</​code>​ 
-În procesul de generare a cheilor ni se cere și un passphrase pentru a asigura securitatea cheii private în cazul în care este pierdută, furată sau altcineva are acces accidental la ea. Desigur, uitarea passphrase-ului face cheia nefolosibilă. Așa că passphrase-ul trebuie reținut (și protejat) ca orice altă parolă. Este indicat să nu protejați cheia printr-un passphrase deoarece prezintă aceleași probleme ca folosirea unei parole. 
- 
-Pentru copierea cheii publice pe o stație folosim comanda ''​%%ssh-copy-id%%'':​ 
- 
-<code > 
-student@uso:​~$ ssh-copy-id root@10.10.10.3 
-/​usr/​bin/​ssh-copy-id:​ INFO: Source of key(s) to be installed: "/​home/​student/​.ssh/​id_rsa.pub"​ 
-/​usr/​bin/​ssh-copy-id:​ INFO: attempting to log in with the new key(s), to filter out any that are already installed 
-/​usr/​bin/​ssh-copy-id:​ INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys 
-root@10.10.10.3'​s password: 
- 
-Number of key(s) added: 1 
- 
-Now try logging into the machine, with:   "​ssh '​root@10.10.10.3'"​ 
-and check to make sure that only the key(s) you wanted were added. 
-</​code>​ 
-Este necesar să cunoaștem parola utilizatorului pentru copierea cheii publice. 
- 
-Atunci când copiem cheia publică, aceasta va fi copiată pentru un singur utilizator. Dacă vrem să ne autentificăm pe același sistem ca utilizatori diferiți fără parola, este necesar să copiem cheia publică pentru fiecare utilizator. 
- 
-=== Exercițiu - Utilizarea cheilor SSH === 
- 
-  * Generați o nouă cheie SSH de tip RSA cu passphrase-ul ''​%%mere%%''​. 
-  * Efectuați modificările necesare astfel încât să vă puteți autentifica drept utilizatorul ''​%%student%%''​ de pe stația ''​%%10.10.10.3%%''​ fără parolă. 
- 
-===== Controlul la distanță în mediul grafic ===== 
- 
-Există anumite tipuri de aplicații care funcționează în mod implicit în mediul grafic și aceste aplicații nu pot fi rulate în interfața în linie de comandă. De exemplu, installer-ul unui joc nu poate să fie rulat din linie de comandă. 
- 
-Controlul acestor aplicații se poate reduce la două probleme: 
- 
-  * controlul întregului desktop; 
-  * controlul unei singure aplicații. 
- 
-==== Controlul desktopului la distanţă ==== 
- 
-Pentru control complet al unei sesiuni desktop grafice există o mai multe soluții, cum ar fi VNC, sau FreeRDP, dar noi ne vom concentra pe soluția numită TeamViewer, deoarece oferă suport pentru toate sistemele convenționale. 
- 
-TeamViewer poate fi descărcat de la [[https://​www.teamviewer.com/​en/​download/​linux/​|această]] adresă și permite autentificarea la o mașină folosind un ID și o parolă generate de aplicația server. 
- 
-{{:​uso:​laboratoare:​laborator-05:​teamviewer_start.png?​500|Aplicația TeamViewer}} 
- 
-=== Recapitulare - Instalarea aplicației TeamViewer === 
- 
-Descărcați și instalați aplicația TeamViewer pe mașina virtuală ''​%%USO%%''​ și pe stația voastră fizică. 
- 
-=== Folosirea TeamViewer === 
- 
-Pentru a ne conecta la o mașină la distanță avem nevoie de ID-ul mașinii și parola conexiunii. Aceste informații se găsesc în primul ecran al aplicației TeamViewer, cum se vede mai jos. 
- 
-Vom scrie ID-ul stației la care vrem să ne conectăm în câmpul ''​%%Partner ID%%''​ de pe calculatorul de pe care vrem să ne conectăm (stația client). 
- 
-{{:​uso:​laboratoare:​laborator-05:​teamviewer_id.png?​500|ID în TeamViewer}} 
- 
-După ce apăsăm tasta ''​%%Enter%%''​ apare promptul pentru parolă, unde completăm parola stației la care vrem să ne conectăm. 
- 
-{{:​uso:​laboratoare:​laborator-05:​teamviewer_pass.png?​500|Parola în TeamViewer}} 
- 
-După ce am introdus parola a apărut pe ecran desktop-ul mașinii la care am vrut să mă conectez. În cazul de față este vorba de un sistem MacOS pe care am rulat TeamViewer. 
- 
-{{:​uso:​laboratoare:​laborator-05:​teamviewer_connection.png?​500|Controlul calculatorului de la distanță}} 
- 
-Deasupra cadrului în care apare desktop-ul de la distanță apar butoane ce ne permit să închidem conexiunea, sau să trimitem acțiuni și fișiere către calculatorul server. 
- 
-=== Exercițiu - Conectarea la distanță folosind TeamViewer === 
- 
-Conectați-vă la mașina virtuală USO de pe stația voastră fizică. 
- 
-==== Controlul unei ferestre la distanţă ==== 
- 
-Pentru controlul unei ferestre de pe stația server putem să folosim protocolul SSH în modul //X Forwarding//​ (se referă la //X Window System//, care este un protocol de afișare al ferestrelor întâlnit în Linux). În acest fel se afișează pe stația client datele aplicației grafice care ar fi afișate pe stația server. 
- 
-Acest mod de transfer nu este rapid, deoarece transferul se face printr-un protocol care nu este menit pentru aplicații care au nevoie să fie responsive, cum sunt ferestrele interactive,​ dar pot fi folosite pentru aplicații cum ar fi kituri de instalare ale programelor. 
- 
-Pentru a porni o aplicație grafică pe un calculator la distanță trebuie să ne conectăm la această stație folosind opțiunea ''​%%-X%%''​ a comenzii ''​%%ssh%%''​. 
- 
-{{:​uso:​laboratoare:​laborator-05:​xforwarding.png?​500|Controlul ferestrelor prin SSH}} 
- 
-Pentru a rula browserul ''​%%firefox%%''​ pe stația de la adresa ''​%%10.10.10.3%%'',​ ne-am conectat la aceasta folosind comanda ''​%%ssh%%''​ cu opțiunea ''​%%-X%%''​ și am pornit aplicația ca și când am porni-o local. 
- 
-<​note>​ 
-Nu putem să preluăm controlul unei aplicații dacă aceasta a fost pornită deja pe stația de la distanță, deoarece putem doar sa primim semnalul video pentru aplicații nou pornite. 
-</​note>​ 
- 
-=== Exercițiu - Controlul une ferestre la distanță === 
- 
-Deschideți aplicația grafică ''​%%qbittorrent%%''​ ca utilizatorul ''​%%student%%''​ pe stația ''​%%10.10.10.3%%''​. 
- 
  
  
uso/laboratoare/ac/laborator-05/services.1635879783.txt.gz · Last modified: 2021/11/02 21:03 by liza_elena.babu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0