Maîtriser la commande scp sous Linux est essentiel pour quiconque souhaite transférer des fichiers en toute sécurité via SSH. Cet outil puissant, basé sur le protocole Secure Copy Protocol, permet de copier fichiers et répertoires d’un système à un autre, tout en garantissant confidentialité et intégrité des données.
Grâce à sa simplicité de syntaxe et à ses nombreuses options, la commande scp sous Linux s’adapte aux besoins des débutants comme des utilisateurs avancés. Explorons ensemble ses usages, ses options, ses astuces et ses alternatives.
À retenir :
- scp sous Linux permet des transferts sécurisés chiffrés entre systèmes grâce au protocole SSH.
- Des options comme
-r
,-P
, ou-C
personnalisent et optimisent vos transferts. - Pour des cas complexes, des alternatives comme rsync ou SFTP peuvent être plus adaptées.
Comprendre les fondamentaux de la commande scp sous Linux
“Une commande bien maîtrisée est une sécurité de plus sur votre réseau.”
Lucien Bérard, ingénieur systèmes
La commande scp sous Linux repose sur le protocole SSH pour assurer la sécurité des fichiers transférés. Elle permet de copier des données entre deux machines locales ou distantes en toute simplicité.
Qu’est-ce que la commande scp ?
scp sous Linux signifie « Secure Copy ». Il s’agit d’une commande native dans la plupart des distributions, héritée du protocole SSH. Contrairement au FTP, elle chiffre les fichiers et les mots de passe, évitant ainsi les interceptions réseau.
Syntaxe de base à connaître
scp [options] [source] [destination]
Exemple :
scp fichier.txt utilisateur@serveur:/chemin/
Exemples pratiques pour copier efficacement vos fichiers
“L’efficacité vient avec la pratique.” — Marc Vial, formateur GNU/Linux.
Maîtriser la commande scp sous Linux passe par des cas concrets. Voici ceux que j’utilise au quotidien.
Copier un fichier local vers un serveur distant
scp fichier.txt [email protected]:/home/user/
Télécharger un fichier depuis un serveur distant
scp [email protected]:/home/user/fichier.txt ./
Copier un dossier entier avec -r
scp -r mon_dossier/ [email protected]:/home/user/
Selon Softline, l’option -r
est indispensable pour les transferts de projets complets ou de sauvegardes.
Tableau des principales options de la commande scp sous Linux
Option | Description |
---|---|
-r | Copie les répertoires de manière récursive |
-P | Définit un port SSH personnalisé |
-p | Conserve les permissions et dates de fichier |
-C | Active la compression |
-l | Limite la bande passante |
-i | Utilise une clé privée pour l’authentification |
-v | Mode verbeux pour débogage |
-q | Supprime les messages de sortie |
Bonnes pratiques et solutions alternatives à scp
“La sécurité et l’optimisation ne doivent jamais être négligées.”
Sophie Leclerc, consultante en cybersécurité
Astuces à appliquer au quotidien
- Utiliser des clés SSH (
-i
) pour éviter de saisir le mot de passe à chaque transfert. - Activer la compression avec
-C
sur les connexions lentes. - Limiter la bande passante avec
-l 500
si le réseau est partagé. - Employer le mode verbeux avec
-v
pour mieux diagnostiquer les problèmes.
Alternatives pertinentes à scp
Voici trois outils que j’ai testés personnellement :
- rsync : efficace pour les synchronisations et les transferts incrémentiels.
- SFTP : mode interactif pour naviguer dans les répertoires distants.
- sshfs : permet de monter un répertoire distant comme un disque local.
Avez-vous déjà rencontré des difficultés avec scp sous Linux ? Utilisez-vous des options spécifiques ou des alternatives comme rsync ou SFTP ? Partagez vos retours d’expérience en commentaire pour enrichir la discussion !
Tout ce que vous dites est étonnamment légitime et je me demande pourquoi je ne l’avais pas vu sous cet angle auparavant. Cet article m’a vraiment mis la puce à l’oreille en ce qui concerne ce sujet. Néanmoins, il y a une question particulière avec laquelle je ne suis pas très à l’aise et pendant que j’essaie de la réconcilier avec l’idée centrale de la position, permettez-moi de voir exactement ce que le reste des lecteurs ont à dire.
Très bien fait.
Bonjour,
Avec scp, vous pouvez copier un fichier ou un répertoire :
De votre système local vers un système distant.
D’un système distant vers votre système local.
Entre deux systèmes distants à partir de votre système local.
Lors du transfert de données avec scp, les fichiers et le mot de passe sont cryptés de sorte que toute personne espionnant le trafic n’obtienne rien de sensible.
Dans ce tutoriel, nous vous montrerons comment utiliser la commande scp à travers des exemples pratiques et des explications détaillées des options scp les plus courantes.
Syntaxe de la commande SCP
Avant d’aborder l’utilisation de la commande scp, commençons par passer en revue la syntaxe de base.
La syntaxe de la commande scp prend la forme suivante :
scp [OPTION] [user@]SRC_HOST :]file1 [user@]DEST_HOST :]file2
OPTION – options scp telles que le chiffrement, la configuration ssh, le port ssh, la limite, la copie récursive …etc.
[user@]SRC_HOST :]file1 – Fichier source.
[user@]DEST_HOST :]file2 – Fichier de destination.
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 un utilisateur et un hôte.
scp fournit un certain nombre d’options qui contrôlent tous les aspects de son comportement. Les options les plus utilisées sont :
-P – Spécifie le port ssh de l’hôte distant.
-p – Préserve les heures de modification et d’accès aux fichiers.
-q – Utilisez cette option si vous souhaitez supprimer l’indicateur de progression et les messages autres que d’erreur.
-C – Cette option force scp à compresser les données lorsqu’elles sont envoyées à la machine de destination.
-r – Cette option indique à scp de copier les répertoires de manière récursive.
Avant de commencer
La commande scp s’appuie sur ssh pour le transfert de données. Elle nécessite donc une clé ou un mot de passe ssh pour s’authentifier sur les systèmes distants.
Les deux points ( 🙂 permettent à scp de distinguer les emplacements locaux et distants.
Pour pouvoir copier des fichiers, vous devez avoir au moins les droits de lecture sur le fichier source et les droits d’écriture sur le système cible.
Faites attention lorsque vous copiez des fichiers qui partagent le même nom et le même emplacement sur les deux systèmes, car scp écrasera les fichiers sans avertissement.
Lors du transfert de fichiers volumineux, il est recommandé d’exécuter la commande scp à l’intérieur d’une session screen ou tmux.
Copier des fichiers et des répertoires entre deux systèmes avec scp
Copier un fichier local vers un système distant avec la commande scp
Pour copier un fichier d’un système local vers un système distant, exécutez la commande suivante :
scp fichier.txt [email protected].0.2:/remote/directory
Où fichier.txt est le nom du fichier que nous voulons copier, nom_d’utilisateur_distant est l’utilisateur sur le serveur distant, 10.10.0.2 est l’adresse IP du serveur. Le répertoire /remote/directory est le chemin d’accès au répertoire dans lequel nous voulons copier le fichier. Si vous ne spécifiez pas de répertoire distant, le fichier sera copié dans le répertoire personnel de l’utilisateur distant.
Vous serez invité à saisir le mot de passe de l’utilisateur, et le processus de transfert commencera.
Le mot de passe de [email protected].0.2 :
file.txt 100% 0 0.0KB/s 00:00
L’omission du nom du fichier dans l’emplacement de destination permet de copier le fichier avec le nom original. Si vous souhaitez enregistrer le fichier sous un nom différent, vous devez spécifier le nouveau nom du fichier :
scp fichier.txt [email protected].0.2:/remote/directory/newfilename.txt
Si SSH sur l’hôte distant écoute sur un port autre que le port par défaut 22, vous pouvez spécifier le port en utilisant l’argument -P :
scp -P 2322 file.txt [email protected].0.2:/remote/directory
La commande permettant de copier un répertoire est très similaire à celle utilisée pour copier des fichiers. La seule différence est que vous devez utiliser l’option -r pour la récurrence.
Pour copier un répertoire d’un système local à un système distant, utilisez l’option -r :
scp -r /local/répertoire [email protected].0.2:/remote/directory
Copier un fichier distant sur un système local à l’aide de la commande scp
Pour copier un fichier d’un système distant vers un système local, utilisez l’emplacement distant comme source et l’emplacement local comme destination.
Par exemple, pour copier un fichier nommé file.txt depuis un serveur distant dont l’adresse IP est 10.10.0.2, exécutez la commande suivante :
scp [email protected].0.2:/remote/file.txt /local/répertoire
Si vous n’avez pas défini une connexion SSH sans mot de passe à la machine distante, il vous sera demandé de saisir le mot de passe de l’utilisateur.
Copier un fichier entre deux systèmes distants à l’aide de la commande scp
Contrairement à rsync , lorsque vous utilisez scp, vous n’avez pas besoin de vous connecter à l’un des serveurs pour transférer des fichiers d’une machine distante à une autre.
La commande suivante copiera le fichier /files/file.txt depuis l’hôte distant host1.com vers le répertoire /files sur l’hôte distant host2.com.
scp [email protected]:/files/file.txt [email protected]:/files
Il vous sera demandé de saisir les mots de passe des deux comptes distants. Les données seront transférées directement d’un hôte distant à l’autre.
Pour acheminer le trafic via la machine sur laquelle la commande est émise, utilisez l’option -3 :
scp -3 [email protected]:/files/file.txt [email protected]:/files