GNU/Linux >> Znalost Linux >  >> Linux

11 Užitečné příkazy „ssh“ a „scp“ v Linuxu

Úvod

V tomto příspěvku se naučíme některé užitečné příkazy ssh a scp s příklady. SSH je protokol, který znamená Secure Shell, což je příkazový nástroj na straně klienta používaný k bezpečnému provádění vzdálené relace systému Linux. K přenosu dat po síti používá metodu symetrického a asymetrického šifrování. SSH je vysoce doporučený nástroj pro vzdálenou relaci serveru, protože je to nejbezpečnější způsob připojení jakéhokoli serveru. SSH je náhradou dříve používaného nezabezpečeného vzdáleného nástroje, jako je telnet. Číslo portu SSH je 22. Verze SSH jsou protokol SSH verze 1 a protokol SSH verze 2 také označované jako SSH-1 a SSH-2 . Rozdíl mezi SSH-1 a SSH-2 je ten, že SSH-2 podporuje certifikát veřejného klíče, zatímco SSH-1 nikoli.

scp je nástroj příkazového řádku, který se používá k bezpečnému kopírování dat z jednoho systému Linux do druhého přes síť. Stejně jako SSH SCP také používá port číslo 22 pro připojení a přenos dat po síti. SCP je pěkná alternativa a doporučený nástroj proti nezabezpečeným protokolům přenosu dat, jako je FTP, Telnet, a je vysoce zabezpečený pro přenos dat po síti, protože k bezpečnému přenosu dat používá protokol SSH.

Pojďme se tedy podívat na některé důležité příkazy ssh a scp s příklady.

V testovacím prostředí mám dva systémy Linux, tj. pc1 a pc2. Podrobnosti o systému naleznete níže.

Scénář testovacího prostředí:

PC1:

Computer Name – pc1
IP Address – 192.168.0.105

PC2:

Computer Name – pc2
IP Address – 192.168.0.106

1. Vzdálené ovládání PC2 z PC1 pomocí příkazu ssh

Jak všichni víme, že ssh se používá k bezpečnému převzetí vzdálené konzole jiného systému Linux, Vezměme tedy vzdálenou konzoli pc2 z pc1, kterou můžete použít pod příkazem ssh.

Syntaxe:

# ssh username@IP Address of the Remote Computer
[root@pc1 ~]# ssh [email protected]   # Take Remote of PC2 from PC1
[email protected]'s password: 
Last login: Thu Mar  9 09:14:34 2017 from 192.168.0.107

Vzdálené odebráno Úspěšně, pro potvrzení zkontrolujte název hostitele a IP adresu vzdáleného systému, jak je uvedeno níže.

[root@pc2 ~]# hostname 
pc2
[root@pc2 ~]# ifconfig    
eth0      Link encap:Ethernet  HWaddr 00:0C:29:01:77:E7  
          inet addr:192.168.0.106  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe01:77e7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9688 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4695 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:11157837 (10.6 MiB)  TX bytes:370245 (361.5 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:960 (960.0 b)  TX bytes:960 (960.0 b)

2. Vezměte vzdálenou konzoli systému s aktuálně přihlášeným uživatelským jménem

Můžete si vzít vzdálenou konzoli systému s aktuálně přihlášeným uživatelským jménem. Například zde v pc1 jsem se přihlásil pomocí uživatelského jména „root“ a chci provést vzdálenou relaci počítače pc2 pomocí stejného uživatelského jména, tj. „root“, pak můžeme použít níže uvedený příkaz.

[root@pc1 ~]# ssh 192.168.0.106   # Take Remote using currently logged in username
[email protected]'s password: 
Last login: Thu Mar  9 09:08:54 2017 from 192.168.0.107
[root@pc2 ~]# hostname
pc2

3. Odhlášení ze vzdálené konzoly

Pro odhlášení z již pořízené vzdálené konzole použijte příkaz logout. Podívejte se na ukázkový výstup níže.

[root@pc2 ~]# logout   # Logout from already taken remote console
Connection to 192.168.0.106 closed.

4. Zkontrolujte verzi nainstalovaného balíčku ssh

Chcete-li zkontrolovat aktuálně nainstalovanou verzi balíčku ssh, použijte příkaz ssh s volbou -V . Podívejte se na ukázkový výstup níže.

[root@pc1 ~]# ssh -V   # check the currently installed ssh package version
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

5. Zkopírujte data z jednoho systému Linux do druhého přes síť pomocí příkazu scp

Pro kopírování dat z jednoho linuxového systému do druhého můžeme použít příkaz scp. Zde kopíruji data, tj. touch.txt soubor z pc1 do pc2. Podívejte se na ukázkový výstup níže.

[root@pc1 ~]# touch text.txt   # Create a Sample text File

[root@pc1 ~]# ls
anaconda-ks.cfg  Documents    install.log.syslog  Public     Videos
data             Downloads    Music               Templates
Desktop          install.log  Pictures            text.txt

[root@pc1 ~]# scp text.txt [email protected]:/root/Desktop/   # Copy data from Local System to Remote System
[email protected]'s password: 
text.txt                                      100%    0     0.0KB/s   00:00   

6. Stažení/kopírování dat ze vzdáleného systému pomocí příkazu SCP

Chcete-li zkopírovat data ze vzdáleného systému do místního systému, můžete použít níže uvedený příkaz. Zde kopíruji data z pc2 do pc1.

[root@pc1 ~]# scp [email protected]:/data/database.txt /root/   # Copy Data from Remote System to Local using scp Command
[email protected]'s password: 
database.txt                                  100%    0     0.0KB/s   00:00    

[root@pc1 ~]# ls
anaconda-ks.cfg  Desktop    install.log         Pictures   text.txt
data             Documents  install.log.syslog  Public     Videos
database.txt     Downloads  Music               Templates

7. Zkopírujte data ze vzdáleného systému do místního systému rekurzivně

Chcete-li rekurzivně zkopírovat adresář s celým jeho obsahem, můžete použít příkaz scp s volbou -r . Viz ukázkový výstup níže. Zde kopíruji adresář, tj. data ze vzdáleného systému, tj. pc2, do místního systému, tj. pc1.

[root@pc1 ~]# scp -r [email protected]:/data /root/Desktop/   # Copy directory Recursively
[email protected]'s password: 
database.txt                                  100%    0     0.0KB/s   00:00    

[root@pc1 ~]# cd /root/Desktop/
[root@pc1 Desktop]# ls
data
[root@pc1 Desktop]# ls data/
database.txt
[root@pc1 Desktop]#

8. Zkopírujte data z místního systému do vzdáleného systému rekurzivně pomocí příkazu scp

Chcete-li rekurzivně zkopírovat adresář s celým jeho obsahem z místního systému do vzdáleného systému, můžete použít příkaz scp s volbou -r . Podívejte se na ukázkový výstup níže.

[root@pc1 ~]# ls apps/   
test1.txt  test2.txt  test3.txt  test4.txt  test5.txt

[root@pc1 ~]# scp -r apps/ [email protected]:/root   # Copy directory Recursively from Local System to Remote System
[email protected]'s password: 
test2.txt                                     100%    0     0.0KB/s   00:00    
test1.txt                                     100%    0     0.0KB/s   00:00    
test4.txt                                     100%    0     0.0KB/s   00:00    
test5.txt                                     100%    0     0.0KB/s   00:00    
test3.txt                                     100%    0     0.0KB/s   00:00    

9. Připojte a spusťte příkaz současně na vzdáleném systému pomocí příkazu SSH

Můžete vzít vzdálenou relaci serveru a spustit příkaz současně. Například zde beru vzdálený systém pc2 a provádím příkaz, tj. ifconfig. Podívejte se na ukázkový výstup níže.

[root@pc1 ~]# ssh 192.168.0.106 "ifconfig"   #  take remote and run a command simultaneously
[email protected]'s password: 
eth0      Link encap:Ethernet  HWaddr 00:0C:29:01:77:E7  
          inet addr:192.168.0.106  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe01:77e7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9870 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4845 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:11182999 (10.6 MiB)  TX bytes:393576 (384.3 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:18 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1058 (1.0 KiB)  TX bytes:1058 (1.0 KiB)

10. Vzdálené ovládání systému pomocí jiného uživatelského jména pomocí příkazu ssh

Chcete-li se vzdálit od systému s jiným uživatelským jménem, ​​můžete použít příkaz ssh s volbou -l . Viz výstup níže.

[root@pc1 Desktop]# ssh -l root 192.168.0.106   # Take remote using different username
[email protected]'s password: 
Last login: Fri Mar 10 08:54:59 2017 from 192.168.0.107

11. Zkopírujte skryté soubory a adresáře pomocí příkazu scp.

Pro kopírování skrytých souborů a adresářů můžete použít příkaz ssh s volbou -rp . jednu věc mějte na paměti, že při kopírování skrytých souborů a adresářů pomocí příkazu scp vždy vložte . (tečka) na konci cesty například „scp -rp /root/.“

[root@pc1 ~]# scp -rp /root/. [email protected]:/hidden   # Copy hidden files and directories using scp command
[email protected]'s password: 
.gtk-bookmarks                                100%  107     0.1KB/s   00:00    
.bashrc                                       100%  176     0.2KB/s   00:00    
.bash_logout                                  100%   18     0.0KB/s   00:00    
.bash_profile                                 100%  176     0.2KB/s   00:00    
database.txt                                  100%    0     0.0KB/s   00:00    
.bash_history                                 100% 3327     3.3KB/s   00:00    
database.txt                                  100%    0     0.0KB/s   00:00    
profiles.ini                                  100%  104     0.1KB/s   00:00    
.
.
.
home-2f9509b7.log                             100%   32KB  32.0KB/s   00:00    
addressbook.db                                100%   12KB  12.0KB/s   00:00    
addressbook.db.summary                        100%   86     0.1KB/s   00:00    
.ICEauthority                                 100% 1244     1.2KB/s   00:00    

[root@pc1 ~]# ssh 192.168.0.106
[email protected]'s password: 
Last login: Fri Mar 10 08:56:14 2017 from 192.168.0.107
[root@pc2 ~]# ls -a /hidden/
.                data             .gnote              Pictures
..               database.txt     .gnupg              Public
anaconda-ks.cfg  .dbus            .gtk-bookmarks      .pulse
apps             Desktop          .gvfs               .pulse-cookie
.bash_history    Documents        .ICEauthority       .ssh
.bash_logout     Downloads        install.log         .tcshrc
.bash_profile    .esd_auth        install.log.syslog  Templates
.bashrc          .gconf           .local              text.txt
.cache           .gconfd          .mozilla            Videos
.config          .gnome2          Music
.cshrc           .gnome2_private  .nautilus


Linux
  1. Jak zakázat příkazy vypnutí a restartu v Linuxu

  2. Linuxové příkazy – přehled a příklady

  3. Linuxové příkazy:jobs, bg a fg

  1. Naučte se rozdíl mezi příkazy „su“ a „su -“ v Linuxu

  2. Nejužitečnější příkazy Nginx v systému Linux

  3. 10 užitečných příkazů YUM v Linuxu

  1. Vytvořte SSH spojení mezi Windows a Linuxem

  2. Příkazy pro restart a vypnutí Linuxu

  3. Rozdíl mezi příkazy 'ifconfig' a ​​'ip'