GNU/Linux >> Tutoriels Linux >  >> Linux

Explication de la commande SCP Linux :copier et transférer des fichiers en toute sécurité {13 exemples}

Présentation

SCP (Protocole de copie sécurisée) est un protocole réseau utilisé pour copier en toute sécurité des fichiers/dossiers entre des systèmes Linux (Unix) sur un réseau. Pour transmettre, utilisez le scp utilitaire de ligne de commande, une variante plus sûre de la commande cp (copie).

SCP protège vos données lors de la copie via une connexion SSH (Secure Shell) en cryptant les fichiers et les mots de passe. Par conséquent, même si le trafic est intercepté, les informations sont toujours cryptées.

Utilisez SCP lorsque :

  • Copier des fichiers d'un hôte local vers un hôte distant.
  • Copier des fichiers d'un hôte distant vers un hôte local.
  • Copier des fichiers entre deux serveurs distants.

Ce guide vous montre comment copier des fichiers à l'aide de la commande SCP et comprend 13 exemples de la commande utilisée dans la pratique .

Prérequis

  • Une connexion shell sécurisée sur le serveur
  • (facultatif) Accès root sur le client et le serveur
  • Une connexion shell sécurisée sur le système serveur

Syntaxe de la commande SCP

La syntaxe pour utiliser le scp la commande est :

scp [option] [[email protected]_host:path/to/source/file] [[email protected]_host:target/path] 

Si vous omettez :

  • le nom_utilisateur de l'hôte (ou de la cible), la commande s'adresse par défaut à l'utilisateur actuel.
  • le chemin/vers/source (ou la cible/chemin ) à partir de la commande, le programme recherche (ou copie) le fichier localement.

Lorsque vous travaillez avec des fichiers distants, spécifiez toujours les spécifications de l'utilisateur et de l'hôte.

Assurez-vous d'utiliser un compte disposant d'un accès en lecture au(x) fichier(s) que vous souhaitez copier sur le système source. De plus, vous devez utiliser un compte avec un accès en écriture au répertoire où le ou les fichiers seront enregistrés sur le système de destination.

Options de commande SCP

Vous pouvez ajouter plusieurs scp options de commande à la commande pour personnaliser et accélérer le processus. Les options sont ajoutées en tant qu'attributs juste après le scp commande.

Chaque option a une forme courte à un seul caractère et un équivalent descriptif plus long.

-1 Utilisez le protocole 1.
-2 Utilisez le protocole 2.
-4 N'utilisez que des adresses IPv4.
-6 N'utilisez que des adresses IPv6.
-B Exécuter en mode batch, en désactivant toutes les requêtes pour la saisie de l'utilisateur.
-b buffer_size Spécifiez la taille de la mémoire tampon utilisée pour le transfert de données. Si non spécifié, utilise la valeur par défaut - 32768 octets.
-C Activer la compression.
-c cipher Sélectionnez le chiffrement pour le chiffrement des données. S'il n'est pas spécifié, SCP utilise la valeur par défaut - "AnyStdCipher".
-D debug_level Définissez le niveau de débogage (1, 2, 3 ou 99).
-d Copiez le fichier, uniquement si le répertoire de destination existe déjà.
-F file Spécifier un autre fichier de configuration pour SSH .
-h Afficher une liste d'options de commande.
-i file Spécifiez le fichier à partir duquel lire l'identité pour l'authentification par clé publique.
-l limit Limiter la bande passante (spécifier la limite dans Kbit/s).
-o ssh_option Définissez les options sur SSH au format ssh_config.
-P port Spécifiez le port auquel se connecter. S'il n'est pas spécifié, SCP utilise le port 22.
-q Exécutez SCP en mode silencieux.
-Q Désactiver l'affichage des statistiques de transfert de fichiers.
-r Copier de manière récursive.
-S program Utilisez un programme spécifié pour la connexion de chiffrement.
-u Supprimez le fichier source une fois la copie terminée.
-v Activer le mode verbeux, qui définit le niveau de débogage sur 2.

Exemples de commandes SCP

Pour mieux comprendre cet utilitaire utile, jetez un œil au scp suivant exemples de commandes.

Copier un fichier du serveur local vers le serveur distant

Dans l'exemple ci-dessous, nous copions un exemple de fichier d'un hôte local vers un serveur distant :

scp Desktop/sample_example.txt [email protected]:/home/remote_dir 

La commande inclut les informations suivantes :

  • Desktop/sample_example.txt - le nom du fichier en cours de copie et son emplacement.
  • [email protected] - le nom d'utilisateur et l'adresse IP du serveur distant.
  • /home/remote_dir – l'emplacement où stocker le fichier copié.

Copier un fichier d'un serveur distant vers l'hôte local

Pour copier un exemple de fichier d'un hôte distant vers un hôte local, nous exécutons :

scp 147.182.143.27:/home/remote_dir/sample_example.txt home/Desktop

Les informations fournies sont

  • [email protected] - le nom d'utilisateur et l'adresse IP du serveur distant sur lequel se trouve actuellement le fichier.
  • /home/remote_dir/sample_example.txt - le nom du fichier en cours de copie et son emplacement.
  • home/Desktop – l'emplacement où stocker le fichier copié.

Copier un fichier d'un serveur distant à un autre

Voyons ensuite comment copier un fichier d'un serveur distant vers un autre serveur distant en utilisant le scp commande :

scp [email protected]:/home/remote_dir/sample_example.txt [email protected]:home/Desktop

La commande ci-dessus spécifie :

  • [email protected] - le nom d'utilisateur et l'adresse IP du serveur distant sur lequel se trouve actuellement le fichier.
  • /home/remote_dir/sample_example.txt - le nom du fichier en cours de copie et son emplacement.
  • [email protected] – le nom d'utilisateur et l'adresse IP du serveur distant où nous voulons copier le fichier.
  • home/Desktop – l'emplacement où stocker le fichier copié sur le serveur distant.

Copier plusieurs fichiers avec SCP

SCP vous permet de copier plusieurs fichiers en une seule commande. Par exemple, la commande ci-dessous copie deux fichiers d'un hôte local vers un serveur distant :

scp example/sample1.txt example/sample2.txt [email protected]:/home/remote_dir

Il comprend les informations suivantes :

  • example/sample1.txt – le nom et l'emplacement du premier fichier copié.
  • example/sample2.txt – le nom et l'emplacement du deuxième fichier en cours de copie.
  • [email protected] - le nom d'utilisateur et l'adresse IP du serveur distant recevant les fichiers.
  • /home/remote_dir - l'emplacement où stocker les fichiers copiés sur le serveur distant.

Copier un dossier de l'hôte local vers le serveur distant de manière récursive

En dehors des fichiers, scp peut également copier en toute sécurité des dossiers vers ou depuis des serveurs distants. La commande suivante montre comment copier un exemple de répertoire sur un serveur distant de manière récursive :

scp -r example [email protected]:/home/remote_dir

La commande comprend :

  • -r – la possibilité de copier le dossier de manière récursive.
  • example – le nom du dossier en cours de copie depuis le serveur local.
  • [email protected] - le nom d'utilisateur et l'adresse IP du serveur distant recevant le dossier.
  • /home/remote_dir - l'emplacement où stocker le dossier copié sur le serveur distant.

Copier un fichier avec SCP en utilisant un port spécifique

Par défaut, SCP utilise le port 22. Cependant, si un système distant est configuré pour écouter les requêtes SSH sur un autre port, utilisez le –P commutateur pour spécifier le port.

Par exemple, la commande suivante copie un fichier d'un serveur local vers un serveur distant, en utilisant le port 2222 :

scp -P 2222  Desktop/sample_example.txt [email protected]:/home/remote_dir

Les composants de la commande ci-dessus sont :

  • -P 2222 – utilisez le port 2222.
  • Desktop/sample_example.txt - le nom du fichier que vous souhaitez copier et son emplacement.
  • [email protected] - le nom d'utilisateur et l'adresse IP du serveur distant recevant le fichier.
  • /home/remote_dir - l'emplacement où stocker le fichier copié sur le serveur distant.

Copier un fichier avec SCP en mode silencieux

Exécuter un scp commande en mode silencieux signifie désactiver l'indicateur de progression et les messages sans erreur de s'afficher dans la sortie. Pour ce faire, vous devez ajouter le -q choix :

scp -q Desktop/sample_example.txt [email protected]:/home/remote_dir

Copier un fichier avec SCP en mode verbeux

Vous pouvez exécuter scp en mode verbeux en ajoutant le -v option qui définit le niveau de débogage sur 2. Ce faisant, imprime des informations de débogage dans la sortie qui peuvent vous aider lors du dépannage.

Ajoutez le -v option après scp pour activer le mode verbeux, comme dans l'exemple ci-dessous :

scp -v Desktop/sample_example.txt [email protected]:/home/remote_dir

Copier un fichier avec SCP et limiter la bande passante

Une autre option utile consiste à limiter la bande passante utilisée par le scp commande en ajoutant le -l paramètre. Ceci est particulièrement utile lors de la copie de fichiers volumineux pour empêcher SCP d'épuiser la bande passante.

Lorsque vous limitez la bande passante, vous devez spécifier le nombre en kilobits/s. Gardez à l'esprit que 1 octet =8 bits. Par conséquent, si vous souhaitez limiter la bande passante pour SCP à 100 Ko/s, la valeur de l en kbps serait de 800 (100 x 8), comme dans la commande ci-dessous :

scp -l 800 Desktop/sample_example.txt [email protected]:/home/remote_dir

Copier un fichier avec SCP plus rapidement

Pour accélérer le transfert de fichiers d'un serveur à un autre, ajoutez le -C option qui compresse le fichier pendant son transfert. Une fois que le fichier atteint sa destination, il revient à sa taille normale.

scp -C Desktop/sample_example.txt [email protected]:/home/remote_dir

Copier un fichier avec SCP en utilisant un chiffrement spécifique

Par défaut, SCP utilise AES-128 pour chiffrer les fichiers. Cependant, le -c L'option vous permet de modifier le chiffrement que SCP utilisera pour chiffrer le fichier.

Par exemple, pour augmenter la sécurité, vous pouvez passer au cryptage 3des, comme dans l'exemple suivant :

scp -c 3des Desktop/sample_example.txt [email protected]:/home/remote_dir

Copier un fichier avec SCP en utilisant IPv4 ou IPv6

Vous pouvez forcer SCP à n'utiliser que IPv4 ou IPv6 selon vos besoins en ajoutant le -4 ou -6 attribut.

Pour copier un exemple de fichier d'un serveur local vers un hôte distant en utilisant uniquement IPv6, vous exécuteriez :

scp -6 Desktop/sample_example.txt [email protected]:/home/remote_dir

Copier un fichier avec SCP en préservant les attributs de fichier

Pour copier un fichier à l'aide de SCP et conserver les attributs de fichier tels que les heures de modification et d'accès, les modes et les autorisations, utilisez le -p choix :

scp -p Desktop/sample_example.txt [email protected]:/home/remote_dir

Linux
  1. Copier des fichiers et des répertoires sous Linux

  2. Comment copier en toute sécurité des fichiers entre des hôtes Linux à l'aide de SCP et SFTP

  3. Commande SCP Linux - Comment transférer un fichier SSH de distant à local

  4. Comment transférer des fichiers en toute sécurité à l'aide de SCP

  5. Comment transférer des fichiers en toute sécurité à l'aide de la commande SCP sous Linux

Comment copier des fichiers sous Linux à l'aide de la commande CP

4 façons de transférer des fichiers et des répertoires sous Linux

Explication de la commande Arping sur Linux

Commande Linux SCP pour transférer des fichiers en toute sécurité

Copier des fichiers en toute sécurité avec la commande SCP

à propos de la commande Linux expliquée {avec exemples}