GNU/Linux >> Tutoriels Linux >  >> Linux

11 commandes "ssh" et "scp" utiles sous Linux

Présentation

Dans cet article, nous allons apprendre quelques commandes ssh et scp utiles avec des exemples. SSH est un protocole qui signifie Secure Shell qui est un outil de commande côté client utilisé pour prendre une session à distance du système Linux en toute sécurité. Il utilise la méthode de cryptage symétrique et asymétrique pour transférer des données sur le réseau. SSH est un outil hautement recommandé pour prendre une session à distance d'un serveur car c'est le moyen le plus sûr de se connecter à n'importe quel serveur. SSH est le remplacement de l'outil distant non sécurisé utilisé précédemment comme telnet. Le numéro de port de SSH est 22. Les versions de SSH sont la version 1 du protocole SSH et la version 2 du protocole SSH, également appelées SSH-1 et SSH-2 . La différence entre SSH-1 et SSH-2 est que SSH-2 prend en charge le certificat de clé publique alors que SSH-1 ne le fait pas.

scp est un utilitaire de ligne de commande utilisé pour copier des données d'un système Linux à un autre sur le réseau en toute sécurité. Comme SSH, SCP utilise également le port numéro 22 pour se connecter et transférer des données sur le réseau. SCP est une alternative intéressante et un outil recommandé contre les protocoles de transfert de données non sécurisés tels que FTP, Telnet et il est hautement sécurisé pour transférer des données sur le réseau car il utilise le protocole SSH pour transférer des données en toute sécurité.

Voyons donc quelques commandes ssh et scp importantes avec des exemples.

J'ai deux systèmes Linux dans mon environnement de test, c'est-à-dire pc1 et pc2, trouvez les détails du système ci-dessous.

Scénario d'environnement de test :

PC1 :

Computer Name – pc1
IP Address – 192.168.0.105

PC2 :

Computer Name – pc2
IP Address – 192.168.0.106

1. Prenez à distance de PC2 à partir de PC1 à l'aide de la commande ssh

Comme nous savons tous que ssh est utilisé pour prendre en toute sécurité la console distante d'un autre système Linux, prenons donc la console distante de pc2 à partir de pc1, vous pouvez utiliser la commande ssh ci-dessous.

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

Prise à distance réussie, pour confirmer, vérifiez le nom d'hôte et l'adresse IP du système distant comme indiqué ci-dessous.

[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. Prendre la console à distance du système avec le nom d'utilisateur actuellement connecté

Vous pouvez utiliser la console distante du système avec le nom d'utilisateur actuellement connecté. Par exemple, ici dans pc1, je me suis connecté en utilisant le nom d'utilisateur "root" et je veux prendre une session à distance de la machine pc2 en utilisant le même nom d'utilisateur, c'est-à-dire "root", alors nous pouvons utiliser la commande ci-dessous.

[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. Se déconnecter de la console distante

Pour vous déconnecter d'une console distante déjà utilisée, utilisez la commande logout. Reportez-vous à l'exemple de sortie ci-dessous.

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

4. Vérifiez la version du package ssh installé

Pour vérifier la version du package ssh actuellement installé, utilisez la commande ssh avec l'option -V . Reportez-vous à l'exemple de sortie ci-dessous.

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

5. Copiez les données d'un système Linux à un autre sur le réseau à l'aide de la commande scp

Pour copier des données d'un système Linux à un autre, nous pouvons utiliser la commande scp. Ici, je copie des données, c'est-à-dire touch.txt fichier de pc1 à pc2. Reportez-vous à l'exemple de sortie ci-dessous.

[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. Télécharger/Copier les données du système distant à l'aide de la commande SCP

Pour copier des données d'un système distant vers un système local, vous pouvez utiliser la commande ci-dessous. Ici, je copie des données de pc2 vers 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. Copier les données du système distant vers le système local de manière récursive

Pour copier un répertoire avec tout son contenu de manière récursive, vous pouvez utiliser la commande scp avec l'option -r . Reportez-vous à l'exemple de sortie ci-dessous. Ici, je copie un répertoire, c'est-à-dire des données d'un système distant, c'est-à-dire pc2 vers un système local, c'est-à-dire 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. Copiez les données du système local vers le système distant de manière récursive à l'aide de la commande scp

Pour copier un répertoire avec tout son contenu de manière récursive du système local vers le système distant, vous pouvez utiliser la commande scp avec l'option -r . Reportez-vous à l'exemple de sortie ci-dessous.

[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. Connectez et exécutez une commande simultanément sur un système distant à l'aide de la commande SSH

Vous pouvez prendre la session à distance d'un serveur et exécuter une commande simultanément. Par exemple, ici, je prends à distance le système pc2 et j'exécute une commande, c'est-à-dire ifconfig. Reportez-vous à l'exemple de sortie ci-dessous.

[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. Prendre à distance le système par un nom d'utilisateur différent à l'aide de la commande ssh

Pour prendre à distance le système avec un nom d'utilisateur différent, vous pouvez utiliser la commande ssh avec l'option -l . Reportez-vous à la sortie ci-dessous.

[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. Copiez les fichiers et répertoires cachés à l'aide de la commande scp.

Pour copier des fichiers et des répertoires cachés, vous pouvez utiliser la commande ssh avec l'option -rp . une chose, gardez à l'esprit que lors de la copie de fichiers et de répertoires cachés à l'aide de la commande scp, mettez toujours . (point) à la fin du chemin par exemple « 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. Comment désactiver les commandes d'arrêt et de redémarrage sous Linux

  2. Apprenez la différence entre les commandes "su" et "su -" sous Linux

  3. Commandes Nginx les plus utiles dans le système Linux

  4. Commandes de redémarrage et d'arrêt de Linux

  5. Différence entre les commandes 'ifconfig' et 'ip'

Commandes Pushd et Popd sous Linux

Commandes SSH sous Linux avec exemples d'utilisation

Installer et utiliser WinSCP

50 commandes dmidecode simples et utiles pour Linux

Les 40 commandes de serveur Linux utiles pour les débutants et les professionnels

40 commandes git utiles pour les administrateurs et les développeurs Linux