Pe parcursul acestei secțiuni și a următoarelor vom folosi următoarele termene pentru a identifica sistemul pe care rulăm comenzi:
tom
sau mașina virtuală tom
se referă la mașina virtuală tom
tom
sau mașina virtuală jerry
se referă la mașina virtuală jerry
Sunt situații în care am realizat o configurare greșită și vrem să dezactivăm acea configurare de pe o interfață. În mod normal, resetarea completă a configurației unei interfețe presupune doi pași:
tom
. Vă veți dezactiva legătura fizică și veți pierde și conexiune SSH. Rulați comenzile direct în interfața CLI (alb pe negru) a aplicației VirtualBox.
<Enter> ~ .
, adică apăsați pe rând tasta Enter> apoi tasta tildă (~
) apoi tasta punct (.
)
Vedeți și răspunsul de aici.
Mai jos eliberăm și dezactivăm interfața enp0s8
de pe mașina virtuală tom
:
student@tom:~$ ip a s enp0s8 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:71:db:21 brd ff:ff:ff:ff:ff:ff inet 192.168.56.101/24 brd 192.168.56.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe71:db21/64 scope link valid_lft forever preferred_lft forever student@tom:~$ sudo ip address flush enp0s8 [sudo] password for student: student@tom:~$ sudo ip link set dev enp0s8 down student@tom:~$ ip a s enp0s8 3: enp0s8: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 link/ether 08:00:27:71:db:21 brd ff:ff:ff:ff:ff:ff
Mai sus am folosit:
ip a s enp0s8
ca să vedem starea interfeței. La început are adresă IP și este activată (state UP
). La sfârșit nu are adresă IP și este dezactivată (state DOWN
).ip address flush enp0s8
ca să eliberăm (flush) configurația interfețeiip link set dev enp0s8 down
ca să dezactivăm interfața
[1a] Folosiți comanda dhclient
pentru a reface configurația de rețea pe interfața enp0s8
pe mașina virtuală tom
. Verificați folosind ping
de pe sistemul fizic.
[1b] Dezactivați configurația interfeței enp0s8
de pe mașina virtuală jerry
.
[1c] Folosiți comanda dhclient
pentru a reface configurația de rețea pe interfața enp0s8
pe mașina virtuală jerry
. Verificați folosind ping
de pe sistemul fizic și de pe mașina virtuală tom
,
Folosim protocolul SSH și comanda ssh
pentru a ne conecta la distanță, folosind o comandă de forma:
ssh <username>@<hostname>
unde <username>
este numele de utilizator iar <hostname>
este numele de stație (sau adresa IP) a stației la care vrem să ne conectăm.
[2a] Realizați, prin SSH, folosind comanda ssh
toate formele de conexiune (6 în total) între sistemul fizic, mașina virtuală tom
și mașina virtuală jerry
.
[2b] Conectați-vă la sistemul unui coleg din stânga sau dreapta voastră, după ce îl întrebați de adresa sa IP.
[2c] Conectați-va la sistemul fep.grid.pub.ro
folosind numele de utilizator de pe acs.curs.pub.ro și parola de acolo.
Utilitarul scp
(secure copy) este folosit pentru a copia fișiere de pe o stație pe alta în mod sigur folosind protocolul SSH. Există și alte utilitare cu care putem face acest lucru, însă aceasta are avantajul că datele sunt transmise sigur, folosind ssh
.
scp
are o sintaxă asemănătoare cu cp
, și anume scp sursă destinație
. Folosind scp
putem copia fișiere de pe mașina noastră pe o altă mașină, fie de pe o altă mașină direct în mașina noastră. Urmăriți pașii de mai jos pentru a copia un fișier de pe mașina fizică pe mașina virtuală tom
.
Pe mașina virtuală tom
aflăm adresa IP a interfeței enp0s8
adresa de legătură între sistemul fizic și mașina virtuală tom
:
student@tom:~$ ip a s enp0s8 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:71:db:21 brd ff:ff:ff:ff:ff:ff inet 192.168.56.101/24 brd 192.168.56.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe71:db21/64 scope link valid_lft forever preferred_lft forever
Folosim apoi adresa IP găsită mai sus a mașinii tom
(în cazul de față 192.168.56.101
) pe mașina fizică:
student@uso:~$ echo "my first scp" > file.txt student@uso:~$ cat file.txt my first scp student@uso:~$ scp file.txt student@192.168.56.101: student@192.168.56.101's password: file.txt 100% 13 9.1KB/s 00:00
student@192.168.56.101
urmează :
. Așa specificăm unde pe mașina tom
să fie copiat fișierul file.txt
. Dupa :
treceți calea din sistemul de fișiere al mașinii tom
la care vreți ca fișierul să fie copiat. În cazul exemplului de mai sus, nu avem nimic, ceea ce înseamnă că se copiază fișierul în directorul curent care va fi /home/student
.
Apoi pe stația tom verificăm existența fișierului:
student@tom:~$ ls file.txt file.txt student@tom:~$ cat file.txt my first scp
[3a] Pe mașina virtuală jerry
creați un fișier la calea /home/student
. Copiați acest fișier pe mașina virtuală tom
și verificați că a avut loc copierea.
[3b] Fiind pe sistemul fizic, copiați fișierul de mai sus de pe mașina virtuală jerry
în directorul ~/uso.git/labs/08-net/
.
[3c] Fiind pe sistemul fizic, copiați același fișier de mai devreme de pe mașina fizică pe fep.grid.pub.ro
, folosind contul vostru de pe acs.curs.pub.ro.
În mod obișnuit, folosirea comenzii ssh
duce la deschiderea unui shell la distanță (remote shell) unde putem rula comenzi. Dacă ne interesează, putem însă rula direct comenzi fără a mai deschide un shell, dând un parametru comenzii ssh
, ca în exemplele de mai jos:
razvan@jotunn:~$ ssh -l student 192.168.56.101 hostname student@192.168.56.101's password: tom razvan@jotunn:~$ ssh -l student 192.168.56.101 df -h student@192.168.56.101's password: Filesystem Size Used Avail Use% Mounted on udev 211M 0 211M 0% /dev tmpfs 49M 956K 48M 2% /run /dev/sda2 9.8G 5.0G 4.4G 54% / tmpfs 241M 0 241M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 241M 0 241M 0% /sys/fs/cgroup /dev/loop0 88M 88M 0 100% /snap/core/5328 /dev/loop1 87M 87M 0 100% /snap/core/4917 /dev/loop2 89M 89M 0 100% /snap/core/5897 tmpfs 49M 0 49M 0% /run/user/1000
În cele două exemple de mai sus am rulat pe mașina virtuală tom, fără a deschide un shell la distanță, comanda hostname
(care afișează numele sistemului) și comanda df -h
(care afișează) un sumar al sistemelor de fișiere montate.
[4a] Afișați informații despre utilizatorul student
pe mașinile virtuale tom
și jerry
folosind comanda finger
fără a deschide un shell la distanță.
[4b] Creați pe mașina virtuală jerry
un fișier numit subzero.txt
având conținutul saibot
. Folosiți conexiune la distanță fără a deschide un shell, comanda echo
și redirectare. Plasați comanda între ghilimele ca să fie transmisă complet la distanță; altfel, redirectarea va fi făcută pe sistemul local. Verificați conținutul fișierului subzero.txt
creat la distanță folosind comanda cat
fără a deschide un shell la distanță.
[4c] Porniți câte o sesiune shell la distanță către mașina virtuală tom
și către mașina virtuală jerry
. Apoi folosiți în acel shell comanda reboot
pentru a reporni sistemul; este modul de repornire de la distanță.
După repornirea celor două sisteme s-a pierdut configurația interfețelor enp0s8
pe mașinile virtuale tom și jerry. Folosiți dhclient
pentru a reface configurația pentru cele două interfețe. Apoi creați câte o conexiune SSH de pe sistemul fizic către fiecare dintre cele două mașini virtuale.