Introduction
SCP (Secure Copy Protocol) est une commande puissante pour copier des fichiers et dossiers de manière sécurisée entre machines locales et distantes via SSH. Contrairement à FTP, SCP crypte les données en transit, évitant les interceptions. Idéal pour les développeurs, sysadmins et débutants en administration système, il simplifie les déploiements sans outils complexes.
Pourquoi l'utiliser en 2026 ? Avec la montée des menaces cyber, SCP reste un standard fiable, intégré nativement à Linux/macOS et disponible sur Windows via OpenSSH. Ce tutoriel beginner progresse des bases (copie simple) aux cas avancés (dossiers, ports custom), avec exemples 100% fonctionnels. À la fin, vous transférerez n'importe quel fichier en 2 minutes, comme un pro. (128 mots)
Prérequis
- Système Linux/macOS ou Windows avec OpenSSH installé (via Paramètres > Applications > Fonctionnalités facultatives).
- Accès SSH à une machine distante (IP, utilisateur, mot de passe ou clé SSH).
- Connaissances basiques de terminal (cd, ls).
- Tester SSH d'abord :
ssh user@ip.
Copier un fichier local vers distant
scp /chemin/vers/fichier-local.txt utilisateur@192.168.1.100:/dossier/distant/Cette commande copie fichier-local.txt du local vers /dossier/distant/ sur la machine distante. Remplacez utilisateur par votre login, 192.168.1.100 par l'IP réelle, et les chemins par les vôtres. Elle demande le mot de passe SSH si pas de clé configurée.
Vérification du transfert
Après exécution, connectez-vous en SSH (ssh utilisateur@192.168.1.100) et listez le dossier distant (ls /dossier/distant/) pour confirmer. SCP affiche la progression (taille, vitesse), comme un thermomètre visuel du transfert.
Copier un dossier récursivement
scp -r /chemin/vers/dossier-local/ utilisateur@192.168.1.100:/dossier/distant/L'option -r (recursive) copie tout le dossier et son contenu imbriqué. Utile pour des projets entiers. Attention : les chemins se terminent par / pour copier le contenu du dossier, pas le dossier lui-même.
Du distant vers le local
Inverser le flux est symétrique : source en premier, destination en second. Parfait pour récupérer des backups ou logs.
Copier un fichier distant vers local
scp utilisateur@192.168.1.100:/dossier/distant/fichier-distant.txt /chemin/local/Ici, le fichier distant arrive sur votre machine locale. L'ordre est inversé par rapport à l'étape 1. SCP gère automatiquement la connexion SSH entrante.
Copier un dossier distant vers local
scp -r utilisateur@192.168.1.100:/dossier/distant/ /chemin/local/Avec -r, tout le dossier distant est recopié localement. Vérifiez l'espace disque avant pour éviter les échecs.
Utiliser une clé SSH (sans mot de passe)
Générez une clé avec ssh-keygen (appuyez Entrée pour defaults), puis copiez-la : ssh-copy-id utilisateur@192.168.1.100. SCP devient sans friction.
SCP avec port non standard
scp -P 2222 /chemin/local/fichier.txt utilisateur@192.168.1.100:/dossier/distant/L'option -P 2222 (majuscule !) cible le port SSH custom (défaut 22). Essentiel pour serveurs sécurisés. Notez la majuscule pour éviter la confusion avec -p (préserver permissions).
Limiter la bande passante
scp -l 1000 /chemin/local/gros-fichier.zip utilisateur@192.168.1.100:/dossier/distant/-l 1000 limite à 1000 Kbit/s (1 Mbit/s), évitant de saturer la connexion. Ajustez selon votre bande passante pour des transferts stables.
Bonnes pratiques
- Toujours utiliser des clés SSH : Évite les mots de passe en clair et active l'automatisation.
- Terminez les dossiers par
/: Copie le contenu, pas le wrapper. - Vérifiez les permissions :
scp -ppréserve timestamps/permissions (scp -p fichier user@host:/dest/). - Testez petit : Copiez un fichier unique avant un dossier massif.
- Logs : Ajoutez
-v(verbose) pour debug (scp -v ...).
Erreurs courantes à éviter
- Port confusion :
-p(minuscule) préserve métadonnées, pas le port ;-P(majuscule) pour port. - Chemins absolus oubliés : Utilisez
/home/user/au lieu de~, car SCP ne l'expanse pas toujours. - Espace disque :
scpne vérifie pas ; monitez avecdf -h. - Firewall SSH : Testez
sshd'abord, sinon "Connection refused".
Pour aller plus loin
Explorez rsync pour synchronisations incrémentales (rsync -avz), ou sftp pour interactif. Documentation officielle : man scp.
Découvrez nos formations Learni sur l'administration Linux pour maîtriser SSH, Docker et plus.