Comment transférer en toute sécurité des fichiers et des répertoires en utilisant SCP

Suraj Joshi 30 janvier 2023
  1. Commande SCP
  2. Transférer des fichiers et des répertoires en utilisant scp
Comment transférer en toute sécurité des fichiers et des répertoires en utilisant SCP

SCP, également appelé secure copy, est un utilitaire de ligne de commande permettant de transférer des fichiers et des répertoires d’un système local vers un système distant et vice-versa. Il nous permet également de transférer des fichiers et des répertoires entre deux systèmes distants. Les fichiers et les mots de passe sont cryptés pendant le transfert, ce qui en fait un moyen de transfert plus sûr.

Commande SCP

Syntaxe

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2

Drapeaux:

  • OPTION: Elle représente les options scp telles que le chiffrement, la configuration ssh, le port ssh, la limite, la copie récursive …etc
  • [user@]SRC_HOST:]file1 : fichier ou répertoire source à copier
  • [user@]DEST_HOST:]file2 : chemin d’accès au répertoire où le fichier ou le répertoire source doit être copié

Le scp offre différentes options pour contrôler le transfert. Certaines des options les plus utilisées sont les suivantes:

-P Préciser le port ssh de l’hôte distant
-p Préserver les temps de modification et d’accès aux fichiers.
-q Supprimer l’indicateur de progression et les messages d’erreur
-C Compression des données lors du transfert
-r Copiez les fichiers de manière récursive.

Choses à remarquer lors de l’utilisation de la commande scp:

  1. Cette commande utilise la clé ssh ou le mot de passe pour authentifier les systèmes distants.
  2. Elle reconnaît les systèmes distants avec le symbole :.
  3. Nous devons regarder les permissions de lecture du fichier ou du répertoire source et les permissions d’écriture du fichier ou du répertoire de destination.
  4. Le scp écrase les fichiers sans avertissement. Nous devons donc être prudents lors du transfert de fichiers qui partagent le même nom et le même emplacement sur les deux systèmes.

Transférer des fichiers et des répertoires en utilisant scp

Copier un fichier d’un système local vers un système distant

scp main.py remote_username@11.11.0.200:/Documents/directory

Cette commande nous demandera un mot de passe d’utilisateur et le transfert commencera une fois que nous aurons entré le bon mot de passe.

Production:

remote_username@11.11.0.200's password:
main.py                             100%    0     0.0KB/s   00:00

Il copie le fichier main.py sur notre système local vers le serveur distant avec le nom d’utilisateur remote_username et l’adresse IP 11.11.0.200. /Documents/directory représente le répertoire de destination sur le serveur distant dans lequel le fichier doit être copié. Si le répertoire distant n’est pas spécifié, le fichier sera copié dans le répertoire d’origine de la machine distante.

Si le SSH sur la machine distante écoute un autre port que le port par défaut 22, nous pouvons spécifier le port en utilisant l’option -P.

scp -P 8080 main.py remote_username@11.11.0.200:/Documents/directory

Copier un répertoire du système local vers le système distant

Nous devons utiliser l’argument -r avec la commande scp pour transférer des répertoires qui représente un transfert récursif de tous les fichiers à l’intérieur du répertoire.

scp -r /Documents/myapp remote_username@11.11.0.200:/Documents/remote_app

Elle copie le répertoire myapp à l’intérieur du répertoire Documents de la machine locale dans le répertoire remote_app à l’intérieur du répertoire Documents de la machine distante.

Copier un fichier du système distant vers le système local

Pour copier un fichier système distant vers le système local, nous utilisons un emplacement distant comme source et un emplacement local comme destination.

scp remote_username@11.11.0.200:/remote/main.py /Documents/local

Il copie le fichier main.py du système distant vers notre système local avec le répertoire de destination /Documents/local.

Copier le fichier d’un emplacement distant vers un autre emplacement distant

scp userA@11.11.0.200:/host1/main.py userB@11.11.0.205:/host2

Il copie le fichier /host1/main.py de l’hôte distant avec l’adresse IP 11.11.0.200 dans le répertoire host2 de l’hôte avec l’adresse IP 11.11.0.205.

Pour acheminer le trafic à travers la machine dans laquelle la commande est émise, nous ajoutons l’option -3 à la commande scp.

scp -3 userA@11.11.0.200:/host1/main.py userB@11.11.0.205:/host2
Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Article connexe - Linux Files and Directories