Utilisez SCP pour transférer des fichiers en toute sécurité

Utilisez SCP pour transférer des fichiers en toute sécurité ubuntu centos fedora linux redhat almalinux

Secure copy protocol (SCP) est un moyen de transférer en toute sécurité des fichiers informatiques entre un hôte local et un hôte distant, ou entre deux hôtes distants. Il est basé sur le protocole Secure Shell (SSH). « SCP » fait généralement référence à la fois au protocole de copie sécurisée et au programme lui-même.

Étape 1 : Installer SCP

Sur Mac et Linux, la commande SCP est préinstallée, donc aucune installation supplémentaire n’est généralement requise. Si vous essayez d’utiliser la commande SCP et obtenez une erreur du type : bash: scp: command not found, cela signifie que vous devez installer SCP sur votre serveur local ou distant.

Fedora ou RedHat et CentOS :

$ yum -y install openssh-clients

Debian ou Ubuntu:

$ apt-get install openssh-client

Étape 2 : Comment utiliser SCP

Syntaxe de la commande SCP :

Avant d’expliquer comment utiliser la commande scp, commençons par examiner la syntaxe de base.

La syntaxe de la commande scp prend la forme suivante :

$ scp [OPTION] s_user@SHOST:file1 d_user@DHOST:file2
  • OPTION – options scp telles que la configuration ssh, le port ssh, la limite, la copie récursive, etc.
  • s_user@SHOST:file1⁣ – Fichier source.
  • d_user@DHOST:file2⁣ – Fichier destinataire.

Les fichiers locaux doivent être spécifiés à l’aide d’un chemin absolu ou relatif, tandis que les noms de fichiers distants doivent inclure une spécification d’utilisateur et d’hôte.

SCP dispose d’un certain nombre d’options qui vous permettent de contrôler chaque aspect de son comportement. Les plus couramment utilisés sont :

  • -P⁣ : Spécifie le port ssh de l’hôte distant.
  • -p⁣ : Préserve les heures de modification, les heures d’accès et les modes du fichier d’origine.
  • -q⁣ : Mode silencieux : désactive la jauge de progression, ainsi que les messages d’avertissement et de diagnostic ssh.
  • -C⁣ : Activation de la compression. Transmet l’indicateur -C à ssh pour activer la compression.
  • -r⁣ : Copie récursivement des répertoires entiers. Notez que SCP suit les liens symboliques rencontrés lors de la traversée de l’arborescence.

Étape 3 : Utilisation de SCP

Copier des fichiers et des répertoires entre deux systèmes
  • Fichier local vers un système distant
$ scp file1.txt [email protected]:/data/test

file1.txt est le nom du fichier à copier, ruser est l’utilisateur du serveur distant et 192.168.1.22 est l’adresse IP du serveur. Le chemin d’accès au répertoire dans lequel vous souhaitez copier le fichier est /data/test. Si aucun répertoire distant n’est spécifié, le fichier sera copié dans le répertoire personnel de l’utilisateur distant.

Vous serez invité à entrer le mot de passe de l’utilisateur avant que le transfert puisse commencer.

[email protected]'s password:
file1.txt                             100%    0     0.0KB/s   00:00

Lorsque le nom de fichier est supprimé de l’emplacement de destination, le fichier est copié avec le nom d’origine. Si vous souhaitez enregistrer le fichier sous un autre nom, utilisez la syntaxe suivante :

$ scp file1.txt [email protected]:/data/test/newfile.txt

Si SSH sur l’hôte distant écoute sur un port autre que le 22 par défaut, utilisez l’argument -P pour spécifier le port :

$ scp -P 2222 file1.txt [email protected]:/data/test

La commande pour copier un répertoire est similaire à la commande pour copier des fichiers. La seule différence est que pour la récursivité, vous devez utiliser l’indicateur -r.
Utilisez l’option -r pour copier un répertoire d’un système local vers un système distant :

$ scp -r /data/test [email protected]:/data/testRemote
  • Fichier distant vers un système local

Utilisez l’emplacement distant comme source et l’emplacement local comme destination pour copier un fichier d’un système distant vers un système local.

Pour copier un fichier nommé test.txt depuis un serveur distant avec l’IP 192.168.1.22, par exemple, utilisez la commande suivante :

$ scp [email protected]:/data/test.txt /data

Si vous n’avez pas configuré de Clé privée pour l’authentification SSH sur la machine distante, vous serez invité à entrer le mot de passe de l’utilisateur.

Copier un fichier entre deux systèmes distants

Contrairement à rsync, vous n’avez pas besoin de vous connecter à l’un des serveurs pour transférer des fichiers d’une machine distante à une autre lors de l’utilisation de SCP.

La commande suivante copiera le fichier /folder/file.txt de l’hôte distant web1.com vers le répertoire /files de l’hôte distant web2.com.

$ scp user1@web1.com:/folder/file.txt [email protected]:/files

Les mots de passe des deux comptes distants seront demandés. Les données seront envoyées directement d’un hôte distant à un autre.

Utilisez l’option -3 pour acheminer le trafic via la machine à partir de laquelle la commande est émise :

$ scp -3 user1@web1.com:/folder/file.txt [email protected]:/files

Conclusion 

Ce guide vous apprend à copier des fichiers et des répertoires à l’aide de la commande SCP.

Vous pouvez également configurer une Clé privée pour l’authentification SSH afin de pouvoir vous connecter à vos serveurs Linux sans saisir de mot de passe.

Laisser un commentaire