Comment utiliser la commande SCP sous Linux

Un didacticiel simple pour vous aider à transférer des fichiers vers un système distant depuis votre système Linux à l'aide de la commande scp.

SCP signifie « copie sécurisée ». scpest un utilitaire en ligne de commande proposé par Linux qui permet le transfert de fichiers et de répertoires d'une machine à une autre sur un réseau non sécurisé.

Si vous souhaitez copier des fichiers d'un système à un autre, cela scppeut être une très bonne option pour effectuer un transfert sécurisé des fichiers et des répertoires. Lorsque les deux machines communicantes sont connectées sur le même réseau, alors l'utilisation scpdevient possible.

Vous pouvez vous fier fortement à la scpcommande pour la confidentialité et l'intégrité, car le fichier en cours de transfert et le mot de passe utilisé pour le transfert sont tous deux cryptés. Aucune information sensible ne sera révélée même si quelqu'un essaie d'espionner le trafic pendant que ce transfert est en cours.

Dans ce tutoriel, nous verrons différents exemples de la scpcommande. Nous examinerons également certaines des options fréquemment utilisées avec la scpcommande.

Prise en main de la commande scp

En utilisant la scpcommande, vous pouvez transférer des fichiers/répertoires :

  • De votre machine locale à une machine distante.
  • Entre deux machines distantes.
  • D'une machine distante à votre machine locale.

Syntaxe générale :

scp [Option] [source_file_name] [[email protected]_Host]:destination_folder

Comprenons les attributs de base de cette commande un par un.

  • [source_file_name] Il s'agit du fichier source que vous souhaitez copier.
  • [ [email protected] _Host] Il s'agit du nom d'utilisateur du système distant sur lequel vous souhaitez copier le fichier. L'adresse IP de la machine distante est également utilisée dans cet attribut après le @symbole ' '.
  • [destination_folder] Il s'agit du répertoire dans lequel vous souhaitez enregistrer le fichier copié.

Remarque : Le :symbole deux-points ( ) est utilisé dans la syntaxe car il fait la différence entre les emplacements locaux et distants. Nous utilisons les deux points ( :) avec le système distant pour spécifier le répertoire dans lequel les fichiers doivent être copiés. Si nous ne spécifions pas le répertoire cible, les fichiers seront alors copiés dans le répertoire personnel de l'utilisateur du système distant.

Options utilisées avec scp

Certaines des options les plus courantes utilisées avec la scpcommande sont répertoriées ci-dessous.

Option La description
-C permettre la compression du fichier à transférer
-v donner la sortie verbeuse
-r copier des fichiers et des répertoires de manière récursive
-p préserver les autorisations, les modes et les temps d'accès des fichiers
-P changer le port par défaut utilisé par la scpcommande

Options fréquemment utilisées avec la commande scp

Nous verrons les exemples de ces options, plus loin dans le tutoriel.

Copier le fichier du local vers un système distant

scpvous permet de transférer des fichiers de votre système local vers un système distant en utilisant la syntaxe suivante. Cela vous permet de transférer ou de télécharger vos fichiers sur un serveur placé à distance.

Syntaxe générale :

scp [file_name] [email protected]:[destination_folder]

Exemple:

scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav

Dans cet exemple, nous copions un fichier 'apache-tomcat-9.0.8.tar.gz' du système local vers le système distant dont l'adresse IP est '143.110.178.221'.

Sur le système distant, le fichier sera maintenant copié dans le répertoire nommé 'gaurav'.

Sortir:

[email protected]:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav
[email protected]'s password: 
apache-tomcat-9.0.8.tar.gz                           100% 9589KB  79.8KB/s   02:00    
[email protected]:~$ 

Vérifions la sortie sur le système distant pour le fichier.

[email protected]:~/gaurav# ls
apache-tomcat-9.0.8.tar.gz
[email protected]:~/gaurav#

Ainsi, le fichier est copié avec succès sur le système distant à l'aide de la scpcommande.

Copie de plusieurs fichiers sur un système distant

Dans l'exemple précédent, nous avons appris à transférer un fichier vers le système distant à l'aide de la scpcommande. Nous allons maintenant voir la méthode pour transférer plusieurs fichiers de votre système local vers un système distant à l'aide de cette commande.

Syntaxe générale :

scp [file 1] [file 2] [file n] [email protected]_host:[specific directory]

Laissez-nous comprendre ce processus simple avec un exemple.

Exemple:

scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav

Ici, plusieurs fichiers sont mentionnés dans la commande à copier sur le système distant.

Sortir:

[email protected]:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav 
[email protected]'s password: 
ath.html                                      100%  199KB  94.7KB/s   00:02    
abc.txt                                       100%    0     0.0KB/s   00:00    
ppa-purge_0.2.8+bzr56_all.deb                 100% 4360    42.2KB/s   00:00    
[email protected]:~$

Sur le système distant :

[email protected]:~/gaurav# ls -l
total 9800
-rw-r--r-- 1 root root       0 Oct  5 08:58 abc.txt
-rw-r--r-- 1 root root 9818695 Oct  5 08:35 apache-tomcat-9.0.8.tar.gz
-rw-r--r-- 1 root root  204057 Oct  5 08:58 ath.html
-rw-r--r-- 1 root root    4360 Oct  5 08:58 ppa-purge_0.2.8+bzr56_all.deb
[email protected]:~/gaurav#

Les trois fichiers sont maintenant copiés sur le système distant.

Copie d'un répertoire sur le système distant

Vous pouvez utiliser la scpcommande pour copier un répertoire de votre système local vers le système distant. Le processus est similaire à celui de la copie d'un fichier. Pour copier également le contenu du répertoire, vous pouvez utiliser l' -roption avec la scpcommande.

L' -roption est utilisée pour copier un répertoire de manière récursive. Cela signifie que tous les sous-dossiers et fichiers à l'intérieur du répertoire seront également copiés.

Syntaxe générale :

scp -r [directory path] [email protected]_host:[target_directory]

Exemple:

scp -r PycharmProjects [email protected]:gaurav

Sortir:

[email protected]:~$ scp -r PycharmProjects [email protected]:gaurav
[email protected]'s password: 
__main__.py                                   100%  623     7.8KB/s   00:00    
__init__.py                                   100%   23     0.4KB/s   00:00    
completion.py                                 100% 2929    28.1KB/s   00:00    
search.py                                     100% 4728    38.7KB/s   00:00    
uninstall.py                                  100% 2963    32.5KB/s   00:00    
hash.py                                       100% 1681    21.3KB/s   00:00    
check.py                                      100% 1430    16.8KB/s   00:00    
configuration.py                              100% 7125    50.4KB/s   00:00    
show.py                                       100% 6289    49.8KB/s   00:00    
download.py                                   100% 6623    48.2KB/s   00:00  
[email protected]:~$  

L'utilisation de l' -roption avec la scpcommande copie tous les sous-dossiers et fichiers du répertoire de la machine locale vers le système distant.

Affichage d'informations détaillées sur le processus scp

Vous pouvez utiliser l' option -v(minuscules v) pour afficher les informations sur les fichiers en cours de copie sur un système distant ou local. Ce type de sortie est également appelé sortie verbeuse.

Lorsque cette option est utilisée, les informations de débogage complètes sur le fichier sont affichées à l'écran.

Syntaxe générale :

scp -v [file_name] [email protected]_host:

Exemple:

scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team

Sortir:

[email protected]:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team
Executing: program /usr/bin/ssh host 159.89.170.11, user root, command scp -v -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/gaurav/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 159.89.170.11 [159.89.170.11] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/gaurav/.ssh/id_rsa type -1
apache-tomcat-9.0.8.tar.gz                                                                                          100% 9589KB  99.8KB/s   01:36    
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 9826736, received 4016 bytes, in 97.2 seconds
Bytes per second: sent 101133.9, received 41.3
debug1: Exit status 0
[email protected]:~$

Ici, dans la sortie, vous pouvez voir que les informations de débogage du fichier sont affichées sur votre terminal lorsque la scpcommande est utilisée avec l' -voption.

Transfert de fichiers entre deux hôtes distants

Linux vous permet de vous connecter à plusieurs hôtes distants. Vous pouvez transférer des fichiers et des répertoires entre deux hôtes distants à l'aide de la scpcommande.

Syntaxe générale :

scp [email protected]_1:/[file_name] [email protected]_2:[folder_to_save]

La syntaxe peut sembler un peu plus large mais est assez simple. Ici, la première partie de la commande donne l'entrée sur l'utilisateur distant à partir duquel le fichier doit être copié. deux-points (:) et /est utilisé pour spécifier le nom du fichier ou le nom du répertoire qui doit être transféré entre les deux machines distantes.

La deuxième partie donne des informations sur le système distant cible sur lequel le fichier doit être copié.

Exemple:

scp -r [email protected]:gaurav [email protected]:/team

Ici, nous allons copier un répertoire nommé 'gaurav' de manière récursive du système local vers un système distant. Le fichier sera copié dans un dossier « équipe » sur le système distant.

Sortir:

[email protected]:~$ scp -r [email protected]:/gaurav [email protected]:/team 
[email protected]'s password: 
1.py                                          100%  134   261.3KB/s   00:00    
variables.py                                  100%  377   949.2KB/s   00:00    
abc.txt                                       100%    0     0.0KB/s   00:00    
ath.html                                      100%  199KB  41.8MB/s   00:00    
[email protected]:~$

Ici, nous avons utilisé la scpcommande sur le système local pour transférer un répertoire nommé 'gaurav' d'un serveur distant à un autre.

Transférer des fichiers du système distant vers votre système local

Vous pouvez facilement transférer les fichiers ou les répertoires du système distant vers votre système local à l'aide de la scpcommande. En termes plus simples, vous pouvez télécharger plusieurs fichiers ou répertoires du serveur distant sur votre système local à l'aide de la scp commande.

Syntaxe générale :

scp [email protected]_host:/files/file.txt /[folder_of_local_system]

Sortir:

[email protected]:~$ scp [email protected]:how.txt .
[email protected]'s password: 
how.txt                                                                                                             100%   11     0.1KB/s   00:00    
[email protected]:~$

Ici, j'ai téléchargé (copié) le fichier du serveur distant sur mon répertoire personnel. Par conséquent, j'ai utilisé le point ( .) pour spécifier dans la commande de copier le fichier dans mon répertoire personnel.

Exemple de sortie :

[email protected]:~$ ls -l how.txt
-rw-r--r-- 1 gaurav gaurav 11 Oct  6 09:49 how.txt
[email protected]:~$ 

Ici, le fichier est maintenant copié dans mon répertoire personnel à partir du serveur distant.

De la même manière, vous pouvez télécharger plusieurs fichiers ou répertoires depuis le serveur distant en utilisant la scpcommande avec les options appropriées.

Compresser des fichiers pour accélérer les transferts

Parfois, le transfert de fichiers volumineux peut prendre du temps. Ce problème peut être résolu en utilisant la scpcommande avec l' option -C(majuscule C).

En utilisant l' -C option, compresse les fichiers de plus grande taille, ce qui facilite un transfert plus rapide et permet ainsi de gagner du temps.

Un fait intéressant à propos de cette option est que le fichier est copié avec sa taille d'origine sur le système de destination, mais pendant le processus de transfert, la taille est compressée pour permettre un transfert plus rapide. Ainsi, la compression se fait uniquement sur le réseau.

Syntaxe générale :

scp -C [file_name] [email protected]_host:[target_folder]

Voyons un exemple comparatif pour comprendre la différence.

Transfert sans option -C :

[email protected]:~$ scp -rv dlink [email protected]:team
Executing: program /usr/bin/ssh host 68.183.82.183, user root, command scp -v -r -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/trinity/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 68.183.82.183 [68.183.82.183] port 22.
debug1: Connection established.

debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 7516504, received 4008 bytes, in 74.6 seconds
Bytes per second: sent 100693.7, received 53.7
debug1: Exit status 0
[email protected]:~$ 

D'après la sortie ci-dessus, nous pouvons voir que le temps requis pour le transfert est de 74,6 secondes. Nous allons essayer de transférer le même fichier en utilisant l'option -C et observer la différence.

Transfert avec l'option -C :

[email protected]:~$ scp -Crv dlink [email protected]:team
Executing: program /usr/bin/ssh host 68.183.82.183, user root, command scp -v -r -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/trinity/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 68.183.82.183 [68.183.82.183] port 22.
debug1: Connection established.
.
.
webupload.img                                                                                                       100% 1834KB  98.7KB/s   00:18    
Sending file modes: C0664 1877552 router.img
Sink: C0664 1877552 router.img
router.img                                                                                                          100% 1834KB 100.3KB/s   00:18    
Sink: E
Sending file modes: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip
Sink: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip
DSL-2750U-Release-IN-T-01.00.07.zip                                                                                 100% 3666KB 218.5KB/s   00:16    
Sink: E
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 7518864, received 3828 bytes, in 51.0 seconds
Bytes per second: sent 100245.4, received 51.0
debug1: Exit status 0
debug1: compress outgoing: raw data 7511925, compressed 7513136, factor 1.00
debug1: compress incoming: raw data 1467, compressed 999, factor 0.68
[email protected]:~$

Ici, nous pouvons facilement observer que l'utilisation de l' -Coption avec la scpcommande nous a permis de compresser le fichier sur le réseau, s'avérant ainsi une option permettant de gagner du temps.

Utiliser un autre port ssh pour le transfert de fichiers

Lors de l'utilisation de la scpcommande, le port par défaut déployé est le port 22. L'utilisateur a la liberté de personnaliser ce choix de port. Vous pouvez utiliser l' -Poption (P majuscule) avec la scpcommande pour utiliser le port de votre choix.

Syntaxe générale :

cp -P [new_port_number] [file_name/directory_name] [email protected]:[destination_folder]

Exemple:

scp -P 4248 dlink [email protected]:team

En utilisant la commande ci-dessus, le fichier sera transféré vers le serveur distant. Mais cette fois, le port utilisé sera à la port 4248place du port par défaut port 22.

Conclusion

Après avoir parcouru ce tutoriel, nous avons appris la nature dynamique de la scpcommande utilisée pour transférer ou copier des fichiers d'un système à un autre. Cette option peut également être utilisée pour télécharger des fichiers ou des répertoires à partir du serveur distant. Ainsi, nous pouvons conclure que la scpcommande s'avère très utile pour les transferts de fichiers lorsque vous devez gérer plusieurs systèmes ainsi que des serveurs distants simultanément.


Comment copier et coller sur Chromebook

Comment copier et coller sur Chromebook

La première chose que vous pourriez vous demander en passant à un Chromebook est de savoir comment faire les choses de base, le genre de choses que vous aviez sous la main dans votre ancien système d'exploitation. Le copier-coller est l'une de ces fonctions fondamentales que vous devez utiliser à un moment ou à un autre.

Comment faire un test de dactylographie sur Linux avec tt

Comment faire un test de dactylographie sur Linux avec tt

À l'ère moderne de la technologie, la dactylographie est devenue l'une des activités les plus courantes pour de nombreuses professions. Apprendre à taper plus rapidement avec précision peut vous aider à faire plus de choses dans le même laps de temps.

Le Wi-Fi ne fonctionne pas sur Ubuntu ? Voici comment y remédier

Le Wi-Fi ne fonctionne pas sur Ubuntu ? Voici comment y remédier

Ubuntu est populaire pour sa robustesse et relativement moins d'erreurs. Mais ce n'est pas sans son sac de problèmes, bien sûr. L'un de ces problèmes concerne son pilote Wi-Fi. Vous pourriez mettre votre système sous tension pour constater que votre Wi-Fi ne fonctionne pas.

Installez TeamViewer 8 pour Ubuntu 12.04

Installez TeamViewer 8 pour Ubuntu 12.04

Dans cette vidéo, j'installe et utilise TeamViewer 8 pour le système Ubuntu 12.04 avec un guide complet. Mais cela fonctionnera également sur Windows.

Comment créer et scanner des codes QR sur Chromebook

Comment créer et scanner des codes QR sur Chromebook

Les codes de réponse rapide, ou codes QR en abrégé, sont des codes-barres avancés qui contiennent plus d'informations qu'un code-barres traditionnel. Ces codes sont bidimensionnels, ce qui vous permet de les scanner verticalement ou horizontalement.

Comment installer et supprimer des packages dans Arch Linux

Comment installer et supprimer des packages dans Arch Linux

Vous voulez installer des packages sur Arch Linux mais vous ne savez pas comment faire ? Beaucoup de gens sont confrontés à ce problème lorsqu'ils migrent pour la première fois des distributions basées sur Debian vers Arch. Cependant, vous pouvez facilement gérer les packages sur votre système basé sur Arch à l'aide des gestionnaires de packages.

15 meilleurs thèmes pour Ubuntu 20.04 en 2020

15 meilleurs thèmes pour Ubuntu 20.04 en 2020

De nombreux nouveaux thèmes mis à jour sont prêts à être installés sur le nouveau bureau GNOME d'Ubuntu 20.04. Voici une liste des meilleurs thèmes Ubuntu en 2020

5 meilleures applications de transfert de fichiers Wi-Fi dUbuntu vers Android

5 meilleures applications de transfert de fichiers Wi-Fi dUbuntu vers Android

Un mécanisme comme le FTP, le transfert de fichiers peer-to-peer, le transfert Wi-Fi vous fera gagner du temps si vous partagez souvent des fichiers entre votre Android et Ubuntu.

Comment installer Spotify sur Linux

Comment installer Spotify sur Linux

Spotify est l'un des plus grands services de streaming musical. Il a des clients natifs pour les appareils mobiles (Android et iOS) et de bureau (Mac et Windows).

9 commandes de base pour démarrer avec Linux

9 commandes de base pour démarrer avec Linux

Les guides pratiques Linux s'attendent souvent à ce que vous effectuiez certaines opérations dans le terminal, ce qui peut sembler intimidant au début. Mais ne vous inquiétez pas ; cette aide-mémoire pour les commandes Linux couvrira le processus d'ouverture d'un terminal et l'émission de quelques commandes utiles.