Maîtriser la commande scp
Mise à jour :
La commande scp est un outil indispensable pour transférer des fichiers de manière sécurisée entre machines Linux. Grâce à son intégration native avec SSH, elle garantit la confidentialité des données tout en offrant une utilisation simple et rapide. Ce guide présente tout ce qu’il faut savoir pour maîtriser scp efficacement, de la syntaxe de base aux usages avancés.
Comprendre la commande scp
La commande scp (Secure Copy Protocol) permet de copier des fichiers et des répertoires d’une machine à une autre de façon sécurisée. Elle utilise le protocole SSH pour chiffrer le transfert, garantissant ainsi la confidentialité des données échangées.
Avantages de scp :
- Sécurité : Les données sont entièrement chiffrées pendant le transfert.
- Simplicité : Une syntaxe claire, accessible à toute personne habituée aux commandes Linux.
- Disponibilité : Préinstallée sur la plupart des distributions Linux et Unix modernes.
Limites de scp :
- Absence de reprise de transfert : En cas d’interruption, le transfert doit être relancé depuis le début.
- Moins de flexibilité : Comparée à des outils comme rsync ou sftp, scp offre moins d’options de contrôle sur le processus.
- Performances : Sur de très gros transferts, scp peut être moins performant à cause du chiffrement systématique.
Pour des transferts simples, rapides et sécurisés, scp reste une excellente solution. Lors de besoins plus complexes, il est recommandé d’explorer des commandes alternatives comme rsync ou sftp.
Syntaxe de base de scp
La commande scp suit une structure simple mais très puissante pour transférer des fichiers entre machines locales et distantes. Sa syntaxe générale est :
scp [options] source destination
Exemples d’utilisation :
-
Copier un fichier local vers un serveur distant :
Terminal window scp fichier.txt user@serveur:/chemin/destination/Ce transfert copie
fichier.txt
dans le dossier/chemin/destination/
du serveur, sous l’identité deuser
. -
Copier un fichier depuis un serveur distant vers la machine locale :
Terminal window scp user@serveur:/chemin/fichier.txt /chemin/local/Ici, le fichier est récupéré depuis le serveur pour être stocké dans
/chemin/local/
. -
Copier un fichier directement entre deux serveurs :
Terminal window scp user1@serveur1:/chemin/fichier.txt user2@serveur2:/chemin/destination/Cette méthode passe par la machine locale mais ne stocke pas le fichier localement ; elle est utile pour transférer des données entre serveurs.
Remarques importantes :
- Si vous ne précisez pas de chemin absolu, scp utilise le répertoire
personnel (
~/
) par défaut. - Le chemin source ou destination peut être un chemin relatif ou absolu.
- Le compte utilisateur doit avoir les permissions nécessaires pour accéder aux fichiers ou répertoires.
Options courantes de scp
La commande scp propose plusieurs options utiles pour personnaliser les transferts de fichiers selon vos besoins. Voici les plus fréquemment utilisées :
-
-r : Copier récursivement un répertoire ainsi que tout son contenu.
Terminal window scp -r dossier/ user@serveur:/chemin/destination/ -
-P : Spécifier un port SSH autre que le port 22 par défaut.
Terminal window scp -P 2222 fichier.txt user@serveur:/chemin/destination/ -
-p : Préserver les permissions, dates de modification et d’accès du fichier ou du répertoire.
Terminal window scp -p fichier.txt user@serveur:/chemin/destination/ -
-q : Mode silencieux, supprime l’affichage de la progression du transfert.
Terminal window scp -q fichier.txt user@serveur:/chemin/destination/ -
-C : Activer la compression des données pour accélérer le transfert sur des connexions lentes.
Terminal window scp -C fichier.txt user@serveur:/chemin/destination/ -
-l : Limiter la bande passante utilisée, exprimée en kilobits par seconde.
Terminal window scp -l 800 fichier.txt user@serveur:/chemin/destination/ -
-v : Activer le mode verbeux pour afficher toutes les étapes de connexion et de transfert, utile pour le débogage.
Terminal window scp -v fichier.txt user@serveur:/chemin/destination/
Ces options peuvent être combinées selon les besoins. Par exemple, pour copier un répertoire tout en compressant les données et en utilisant un port personnalisé :
scp -r -C -P 2222 dossier/ user@serveur:/chemin/destination/
Toutes ces options permettent d’ajuster scp à vos contraintes réseau ou de sécurité pour un transfert de fichiers plus maîtrisé.
Cas d’usage pratiques
Utiliser scp pour transférer des fichiers est simple une fois que l’on connaît les commandes de base. Voici les principaux scénarios :
-
Transférer un fichier local vers un serveur distant :
Terminal window scp fichier.txt user@serveur:/chemin/destination/Ce transfert envoie
fichier.txt
depuis la machine locale vers le serveur dans le répertoire spécifié. -
Transférer un fichier distant vers la machine locale :
Terminal window scp user@serveur:/chemin/fichier.txt /chemin/local/Cette commande récupère
fichier.txt
depuis le serveur distant pour l’enregistrer localement. -
Transférer un répertoire local vers un serveur distant :
Terminal window scp -r dossier/ user@serveur:/chemin/destination/L’option
-r
est indispensable ici pour copier un dossier entier avec tout son contenu. -
ransférer un répertoire distant vers la machine locale :
Terminal window scp -r user@serveur:/chemin/dossier/ /chemin/local/Cette commande rapatrie tout le répertoire depuis le serveur, ce qui est utile pour des sauvegardes complètes.
-
Spécifier un port SSH personnalisé : Lorsque le serveur utilise un port différent du port 22 pour SSH :
Terminal window scp -P 2222 fichier.txt user@serveur:/chemin/destination/L’option
-P
permet d’indiquer le port correct. -
Limiter la bande passante utilisée : Pour éviter de saturer la connexion réseau :
Terminal window scp -l 800 fichier.txt user@serveur:/chemin/destination/La valeur est exprimée en kilobits par seconde.
-
Activer la compression des données : Sur les connexions lentes, activer la compression peut réduire la durée du transfert :
Terminal window scp -C fichier.txt user@serveur:/chemin/destination/ -
Copier un fichier entre deux serveurs distants : Sans le télécharger sur la machine locale, utiliser l’option
-3
:Terminal window scp -3 user1@serveur1:/chemin/fichier.txt user2@serveur2:/chemin/destination/Ce mode passe par la machine locale comme intermédiaire, mais le fichier n’est pas stocké localement.
Bonnes pratiques et sécurité
Pour garantir des transferts de fichiers sécurisés et efficaces avec scp, il est essentiel d’appliquer certaines bonnes pratiques.
-
Utiliser des clés SSH au lieu de mots de passe : Remplacer l’authentification par mot de passe par des clés SSH permet de sécuriser les connexions et d’automatiser les transferts sans intervention manuelle. Comment générer des clés SSH ↗.
-
Vérifier les permissions après transfert : Après chaque copie, s’assurer que les permissions des fichiers et répertoires sont correctement configurées pour éviter des accès non autorisés.
-
Limiter l’utilisation de scp pour des données sensibles : Bien que scp chiffre les données, il est parfois préférable d’utiliser sftp ou rsync pour bénéficier de fonctionnalités de vérification d’intégrité et de reprise de transfert.
-
Surveiller les journaux SSH : Consulter régulièrement les logs SSH pour repérer d’éventuelles anomalies ou connexions suspectes :
Terminal window sudo journalctl -u ssh -
Limiter l’accès SSH : Restreindre l’accès SSH aux seules IP autorisées et désactiver l’authentification par mot de passe si possible.
Astuce supplémentaire : Préférer l’utilisation d’un compte utilisateur non privilégié pour les transferts, puis déplacer les fichiers localement avec les droits root si nécessaire.
En appliquant ces bonnes pratiques, l’usage de scp devient beaucoup plus sûr.
Contrôle de connaissances
Pourquoi ce contrôle ?
Cet contrôle va vous permettre de valider vos connaissances sur le sujet abordé dans le guide. Il comporte des QCM, des questions vrai/faux et des réponses ouvertes à un mot.
🕒 Le chronomètre commence dès que vous cliquez sur Démarrer le test. Vous devrez terminer l’examen avant la fin du temps imparti.
🎯 Pour réussir, vous devez obtenir au moins 80% de bonnes réponses.
💡 Je ne fournis pas directement les réponses aux questions. Cependant, si certaines sont complexes, des pistes d’explication pourront être proposées dans le guide ou après l’examen.
Bonne chance ! 🚀
Conclusion
La commande scp reste une solution rapide et fiable pour transférer des fichiers de manière sécurisée sous Linux. En maîtrisant ses options et en appliquant de bonnes pratiques de sécurité, vous pouvez optimiser vos transferts et protéger efficacement vos données.