Linux

Comment utiliser la commande scp pour transférer des fichiers en toute sécurité sous Linux

Supposons que vous souhaitiez transférer des fichiers entre des serveurs sur un système Linux. Il existe de nombreuses façons d’accomplir cette tâche, mais si votre priorité est de transférer des fichiers en toute sécurité, il vous reste quelques options. La solution la plus simple consiste à utiliser la commande scp ou secure copy pour transférer vos fichiers sans vous soucier de la sécurité. Dans cet article, nous expliquerons comment utiliser le transfert de fichiers en toute sécurité à l’aide de la commande scp sur votre système Linux.

Transférer des fichiers avec la commande scp sous Linux (2023)

Qu’est-ce que la commande scp sous Linux

Lorsqu’il s’agit de transférer des fichiers sur un réseau sécurisé, la commande scp peut être très utile. Il signifie Secure Copy Protocol et transfère des fichiers et des répertoires entre deux systèmes via une connexion SSH (Secure Shell). Avec ssh, vous pouvez être assuré de la sécurité de vos fichiers car ils sont cryptés par défaut. En termes plus simples, la commande scp est une version plus sécurisée de la commande cp, que vous pouvez lire dans notre article sur les commandes Linux Terminal.

Comment utiliser la commande scp : syntaxe et options

Avant de pouvoir transférer des fichiers via scp, voyons la syntaxe et les options de la commande ici :

scp

Comprendre la syntaxe :

  • Tout d’abord, <[email protected]_ip_address:path/to/source/file> spécifie le système ‘source’ à partir duquel vous devez transférer vos fichiers/répertoires.
  • Deuxièmement, <[email protected]_ip_address:target/path> spécifie le système ‘cible’ vers lequel vous voulez transférer vos fichiers/répertoires.

Si vous laissez l’un des paramètres ci-dessus, la commande scp sous Linux recherchera d’abord le fichier, puis le copiera localement. Certaines des options à coupler avec la commande sont :

OptionsDestination-PSspécifie le port à connecter au système hôte. S’il est omis, il utilisera le port 22 par défaut.-pConserve les heures de modification, les heures d’accès et les modes du fichier d’origine lorsqu’il est copié sur le système cible.-rCopie l’intégralité du répertoire sur le système cible de manière récursive.-JUtilisé pour connecter le système source et le système de destination via un système proxy (hôte de saut).-3lorsque cet indicateur est utilisé, il copie les fichiers à la fois sur le système cible ainsi que sur le système local-4force la commande scp à utiliser uniquement les adresses IPv4.-6force le scp pour utiliser uniquement les adresses IPv6.

  Comment télécharger, installer et configurer Tensorflow sous Windows et Linux

Comment copier des fichiers à l’aide de la commande scp

Avant d’utiliser la commande scp sous Linux, vous devez remplir certaines conditions préalables sur les systèmes hôte et cible :

  • ssh doit être installé
  • accès root ou tout utilisateur avec des privilèges sudo

Copier les fichiers de l’hôte local vers la cible distante

Si vous avez un fichier que vous devez transférer de votre système local vers une cible distante, vous devez utiliser la syntaxe suivante :

scp @ :

Si la syntaxe ci-dessus peut sembler compliquée, un exemple la clarifiera :

scp test.txt [email protected]:/home/remote2/Documents/

Dans l’exemple ci-dessus :

  • test.txt est le nom du fichier à transférer et il se trouve dans le répertoire courant du système local.
  • test est le nom d’utilisateur sur le système cible.
  • 139.144.11.105 est l’adresse IP du système cible.
  • /home/remote2/Documents/ est l’emplacement sur le système cible où le fichier transféré sera enregistré.

Copier les fichiers de l’hôte distant vers la cible locale

Si vous devez transférer un fichier d’un hôte distant vers votre ordinateur local, utilisez la syntaxe de commande scp suivante sur votre système Linux :

scp @ :

Par exemple, supposons que vous ayez besoin de transférer un fichier nommé test.py depuis le serveur distant sur lequel vous travaillez, utilisez cette commande :

scps [email protected]:/home/test/test1.py ~/test1.py

Dans cet exemple :

  • test est le nom d’utilisateur de l’hôte distant.
  • 10.10.11.113 est l’adresse IP de l’hôte distant.
  • /home/test/test1.py est le chemin du fichier à transférer depuis l’hôte distant.
  • ~/test1.py est le nom du fichier après son transfert sur la machine locale et son stockage dans le répertoire personnel.

Transférer des fichiers d’un hôte distant vers une autre cible distante

Avec la commande scp, vous pouvez non seulement transférer des fichiers entre votre système local et une machine distante, mais également transférer des fichiers entre deux systèmes distants. Mais, avant de pouvoir transférer des fichiers d’un système distant vers un autre système distant, il est recommandé de générer une clé ssh privée et une clé ssh publique sur le système source et de stocker une copie de la clé publique dans le système de destination.

  Comment installer BricsCAD Shape sur Linux

Généralement, les utilisateurs se plaignent de l’erreur « Échec de la vérification de la clé de l’hôte » lors du transfert de fichiers entre deux systèmes distants. Pour contourner l’erreur, utilisez une clé ssh comme mesure supplémentaire. Nous avons expliqué comment vous pouvez le faire ici :

1. Générez une paire de clés publique/privée sur le serveur source avec cette commande :

ssh-keygen -t

2. Pour les algorithmes de chiffrement, vous pouvez utiliser « rsa », qui est l’algorithme le plus couramment utilisé ou tout autre algorithme de votre choix.

3. Ensuite, il vous sera demandé de choisir l’emplacement où stocker la clé ssh. Vous pouvez soit le stocker à n’importe quel endroit de votre choix ou à l’emplacement par défaut.

4. Pour la phrase de passe, vous pouvez entrer n’importe quoi de votre choix ou la laisser vide en appuyant sur Entrée.

5. Ensuite, copiez la clé publique sur le serveur de destination à l’aide de la commande ci-dessous. Avec cela, vous pouvez même vous connecter au système de destination sans mot de passe en utilisant ssh.

ssh-copy-id @

Remarque : la méthode de connexion sans mot de passe ne fonctionnera que pour l’utilisateur pour lequel vous avez généré la clé ssh.

6. Une fois que vous avez créé et stocké la clé ssh sur le serveur distant, utilisez cette syntaxe de commande scp pour échanger des fichiers entre deux systèmes distants exécutant Linux :

scp @ : @ :

Supposons que vous ayez besoin de transférer un fichier nommé test.txt d’un hôte distant vers un autre récepteur distant, utilisez la commande :

scps [email protected]:/home/test1/test.txt [email protected]:/home/remote2/Documents/test1.txt

Dans cet exemple :

  • remote1 est le nom de l’utilisateur dans l’hôte de l’expéditeur distant
  • 10.10.11.113 est l’adresse IP de l’hôte expéditeur distant
  • /home/test1/test.txt est le chemin vers le fichier à envoyer
  • remote2 est le nom de l’utilisateur dans la cible du récepteur distant
  • 10.11.27.111 est l’adresse IP de la cible du récepteur distant
  • /home/remote2/Documents/test1.txt est le nom et le chemin à enregistrer pour le fichier à recevoir.

Transférer plusieurs fichiers à l’aide de la commande scp

Transférer plusieurs fichiers un par un peut être une tâche fastidieuse pour n’importe qui. Au lieu de cela, vous pouvez utiliser la syntaxe ci-dessous pour échanger des fichiers à l’aide de la commande scp sous Linux :

  Comment installer le thème d'icônes Boston sur Linux

scp @ :

Par exemple – Supposons que vous deviez envoyer quatre fichiers, y compris test1.txt, test2.py, test3.sh et test4.c, à un récepteur distant, vous pouvez utiliser la commande ci-dessous :

scp -P 22 test1.txt test2.py test3.sh test4.c [email protected]:/home/remote_1/Documents

Comprenons comment la commande dans l’exemple fonctionne et ce qu’elle fait :

  • -p 2222 est utilisé pour spécifier de se connecter via le port 22
  • test1.txt test2.py test3.sh test4.c sont le nom des fichiers à transférer
  • remote_1 est le nom d’utilisateur du système récepteur
  • 10.10.11.113 est l’adresse IP du récepteur
  • /home/remote_1/Documents fait référence au chemin pour stocker le fichier reçu.

Vous pouvez même utiliser des caractères génériques pour envoyer plusieurs fichiers avec la même extension, comme indiqué ci-dessous :

scp . @ :

Par exemple, si vous devez envoyer tous les fichiers .py à un serveur distant, utilisez la commande scp ci-dessous dans le terminal Linux :

scp *.py [email protected]:/home/remote_1/

Ici,

  • *.py signifie tous les fichiers python
  • remote1 est le nom d’utilisateur du destinataire
  • 10.10.11.113 est l’adresse IP du destinataire
  • /home/remote_1/ est l’emplacement où stocker le fichier reçu

Questions fréquemment posées

Le transfert de fichiers SCP est-il sécurisé ?

Le Secure Copy Protocol ou scp est un protocole basé sur la technologie SSH et utilise le cryptage et l’authentification pour l’échange de fichiers entre deux hôtes. Cela garantit une sécurité et une intégrité complètes des données entre les deux hôtes.

SCP est-il plus sécurisé que SFTP ?

Les protocoles SCP et SFTP sont à égalité en termes de sécurité. Le principal avantage de l’utilisation de scp sur SFTP réside dans les vitesses de transfert rapides, particulièrement utiles dans les réseaux à latence élevée.

Transférer des fichiers en toute sécurité à l’aide de la commande scp sous Linux

À un moment donné, chaque utilisateur doit échanger des fichiers sur le réseau. La commande scp facilite le transfert de fichiers de manière sécurisée et efficace, même sur un réseau à latence élevée. Sûrement, connaître les différentes options et la syntaxe scp peut également être utile. Vous pouvez également vous référer à nos guides sur la façon de renommer un fichier sous Linux et comment supprimer un fichier sous Linux pour améliorer encore vos compétences en gestion de fichiers sur le système d’exploitation. Nous espérons que cet article vous a aidé à apprendre à utiliser la commande scp pour transférer des fichiers sur des ordinateurs Linux. Si vous rencontrez des problèmes lors de l’utilisation de la commande, faites-le nous savoir dans la section des commentaires.

x