Copie de fichiers via SSH : Guide complet de SCP, rsync et SFTP
SSH (Secure Shell) est la base de la gestion sécurisée des serveurs distants. Que vous soyez un développeur déployant du code, un administrateur système gérant une infrastructure, ou un utilisateur avancé maintenant un environnement VPS Hosting, le transfert sécurisé de fichiers entre machines est une tâche que vous effectuerez constamment.
Ce guide complet couvre chaque méthode majeure pour copier des fichiers via SSH — y compris SCP, rsync, SFTP, et l’automatisation basée sur les clés — avec une syntaxe du monde réel, des exemples pratiques, et des conseils d’experts pour vous aider à travailler plus rapidement et de manière plus sécurisée.
Pourquoi utiliser SSH pour les transferts de fichiers ?

Avant de plonger dans les outils, il vaut la peine de comprendre pourquoi le transfert de fichiers basé sur SSH est la norme de l’industrie pour les administrateurs de serveurs et les développeurs.
- Chiffrement de bout en bout : Chaque octet de données — y compris les identifiants, les commandes et le contenu des fichiers — est chiffré en transit à l’aide d’algorithmes cryptographiques modernes. Cela rend les transferts SSH immunisés contre l’interception de paquets et les attaques de type man-in-the-middle.
- Aucun logiciel supplémentaire requis : SSH est préinstallé sur pratiquement tous les systèmes Linux/Unix et est nativement disponible sur Windows 10+ et macOS.
- Polyvalence : Une seule connexion SSH peut gérer les sessions shell interactives, les transferts de fichiers, la redirection de ports et les scripts automatisés.
- Convivial pour l’automatisation : SSH s’intègre parfaitement aux tâches cron, aux pipelines CI/CD et aux scripts de sauvegarde, permettant des transferts de fichiers entièrement automatisés et sans mot de passe.
- Fiabilité : Les connexions SSH gèrent les interruptions réseau avec élégance, en particulier lorsqu’elles sont combinées avec des outils comme rsync.
Méthode 1 : Copier des fichiers avec SCP (Secure Copy Protocol)

SCP est l’outil le plus simple et le plus largement utilisé pour les transferts de fichiers ponctuels via SSH. Il fonctionne en exploitant votre connexion SSH existante pour copier de manière sécurisée des fichiers entre les hôtes.
1) Syntaxe SCP de base
scp [options] [source] [destination]2) Télécharger un fichier de la machine locale vers le serveur distant
scp /path/to/local/file username@remote_host:/path/to/remote/destinationExplication :
| /path/to/local/file | le fichier que vous souhaitez transférer sur votre machine locale |
| username@remote_host | votre nom d’utilisateur SSH et le nom d’hôte ou l’adresse IP du serveur |
| /path/to/remote/destination | le répertoire cible ou le chemin du fichier sur le serveur distant |
3) Télécharger un fichier du serveur distant vers la machine locale
scp username@remote_host:/path/to/remote/file /path/to/local/destinationInversez simplement la source et la destination pour extraire un fichier du serveur vers votre machine locale.
4) Copier un répertoire entier de manière récursive
scp -r /path/to/local/directory username@remote_host:/path/to/remote/destinationLe drapeau -r indique à SCP de copier le répertoire et tout son contenu de manière récursive, y compris les sous-répertoires imbriqués.
5) Options SCP utiles
| Option | Description |
|---|---|
| -P [port] | Spécifier un port SSH personnalisé (note : majuscule -P, contrairement au -p minuscule de SSH) |
| -C | Activer la compression pour des transferts plus rapides sur les connexions lentes |
| -i [identity_file] | Utiliser une clé privée SSH spécifique pour l’authentification |
| -l [limit] | Limiter l’utilisation de la bande passante en Kbit/s |
| -q | Mode silencieux — supprimer la sortie de progression |
| -v | Mode verbeux — utile pour déboguer les problèmes de connexion |
6) Quand utiliser SCP
SCP est idéal pour les transferts de fichiers ponctuels et rapides où la simplicité est importante. Il ne nécessite aucune configuration et fonctionne immédiatement sur tout système disposant de SSH installé. Cependant, pour les grands répertoires ou les transferts répétés, rsync est un choix nettement meilleur.
Méthode 2 : Copier des fichiers avec rsync

rsync est le choix des professionnels pour la synchronisation et le transfert de fichiers via SSH. Sa fonctionnalité clé est le transfert delta : au lieu de copier des fichiers entiers, rsync analyse la source et la destination et ne transfère que les portions modifiées. Cela économise énormément de temps et de bande passante lors du traitement de fichiers volumineux ou de répertoires mis à jour fréquemment.
1) Syntaxe rsync de base
rsync [options] [source] [destination]2) Télécharger un fichier de la machine locale vers le serveur distant
rsync -avz /path/to/local/file username@remote_host:/path/to/remote/destination3) Synchroniser un répertoire entier vers un serveur distant
rsync -avz /path/to/local/directory/ username@remote_host:/path/to/remote/destination/Important : Notez la barre oblique finale / après le répertoire source. Avec une barre oblique finale, rsync copie le contenu du répertoire. Sans elle, rsync copie le répertoire lui-même en tant que sous-répertoire de la destination.
4) Mettre en miroir un répertoire (Supprimer les fichiers supprimés de la source)
rsync -avz --delete /path/to/local/directory/ username@remote_host:/path/to/remote/destination/Le drapeau –delete garantit que les fichiers supprimés de la source sont également supprimés de la destination, gardant les deux emplacements parfaitement synchronisés.
5) Utiliser un port SSH personnalisé
rsync -avz -e "ssh -p 2222" /path/to/local/directory/ username@remote_host:/path/to/remote/destination/6) Options rsync utiles
| Option | Description |
|---|---|
| -a | Mode archive : préserve les permissions, les horodatages, les liens symboliques et la propriété |
| -v | Verbose : affiche la progression fichier par fichier pendant le transfert |
| -z | Compression : réduit les données transférées sur le réseau |
| –delete | Supprime les fichiers à la destination qui n’existent plus à la source |
| –progress | Affiche la progression en temps réel pour chaque fichier |
| –exclude | Exclure des fichiers ou des motifs spécifiques (par exemple, –exclude ‘*.log’) |
| -n ou –dry-run | Simuler le transfert sans réellement copier quoi que ce soit |
| -e “ssh -p [port]” | Spécifier un port SSH personnalisé |
| –bwlimit=[KB/s] | Limiter la vitesse de transfert pour éviter de saturer votre connexion |
7) Quand utiliser rsync
Utilisez rsync pour les sauvegardes, les déploiements et toute tâche de synchronisation récurrente. C’est particulièrement puissant lors de la gestion de grandes bases de code, de bibliothèques multimédias ou d’exportations de bases de données sur un Serveur Dédié où l’efficacité de la bande passante et l’intégrité des données sont critiques.
Méthode 3 : Copie de fichiers entre deux serveurs distants

Une capacité moins connue mais extrêmement utile de SCP et rsync est la possibilité de transférer des fichiers directement entre deux serveurs distants — sans router les données par votre machine locale. C’est inestimable lors de la migration de serveurs ou de la synchronisation de données entre des instances cloud.
1) Copier des fichiers entre deux serveurs distants avec SCP
scp username1@remote_host1:/path/to/file username2@remote_host2:/path/to/destination2) Copier des fichiers entre deux serveurs distants avec rsync
rsync -avz username1@remote_host1:/path/to/source/ username2@remote_host2:/path/to/destination/Remarque : Pour que les transferts serveur à serveur fonctionnent, le serveur source doit être capable d’établir une connexion SSH au serveur de destination. Vous devrez peut-être configurer des clés SSH sur le serveur source ou utiliser le transfert d’agent SSH (ssh -A).
3) Transfert serveur à serveur via SSH Tunneling (méthode alternative)
Si SSH serveur à serveur direct n’est pas possible en raison de restrictions de pare-feu, vous pouvez canaliser le transfert par votre machine locale en utilisant tar et ssh :
ssh username1@remote_host1 "tar czf - /path/to/source" | ssh username2@remote_host2 "tar xzf - -C /path/to/destination"Cela diffuse une archive compressée du serveur 1 directement dans le serveur 2 via votre session de terminal locale.
Méthode 4 : Copier des fichiers avec SFTP (SSH File Transfer Protocol)

SFTP offre une expérience interactive, similaire à FTP sur une connexion SSH chiffrée. Contrairement à SCP, qui est un outil à commande unique, SFTP ouvre une session persistante où vous pouvez parcourir les répertoires, télécharger, charger, renommer et supprimer des fichiers de manière interactive.
1) Démarrer une session SFTP
sftp username@remote_hostVous serez dirigé vers une invite SFTP (sftp>), à partir de laquelle vous pouvez exécuter les commandes suivantes :
2) Commandes SFTP essentielles
| Commande | Description |
|---|---|
| ls | Lister les fichiers du répertoire distant actuel |
| lls | Lister les fichiers du répertoire local actuel |
| cd /remote/path | Changer le répertoire distant |
| lcd /local/path | Changer le répertoire local |
| put /local/file /remote/destination | Charger un fichier sur le serveur distant |
| get /remote/file /local/destination | Télécharger un fichier depuis le serveur distant |
| mput *.txt | Charger plusieurs fichiers correspondant à un modèle |
| mget *.log | Télécharger plusieurs fichiers correspondant à un modèle |
| mkdir /remote/newdir | Créer un répertoire sur le serveur distant |
| rm /remote/file | Supprimer un fichier sur le serveur distant |
| exit ou quit | Fermer la session SFTP |
3) Se connecter à un port SSH personnalisé via SFTP
sftp -P 2222 username@remote_host4) Quand utiliser SFTP
SFTP est idéal pour les sessions interactives de gestion de fichiers — par exemple, lorsque vous devez parcourir une structure de répertoires distante, télécharger sélectivement des fichiers journaux ou charger des fichiers de configuration sur un serveur web. De nombreux clients GUI (tels que FileZilla, Cyberduck et WinSCP) utilisent SFTP comme protocole sous-jacent, le rendant accessible aux utilisateurs non techniques également.
Méthode 5 : Automatiser les transferts de fichiers avec l’authentification par clé SSH

Entrer manuellement un mot de passe pour chaque transfert de fichier est inefficace et incompatible avec l’automatisation. L’authentification basée sur les clés SSH résout ce problème en permettant des connexions sans mot de passe et cryptographiquement sécurisées — une condition préalable à tout flux de travail de sauvegarde ou de déploiement automatisé.
1) Générer une paire de clés SSH
Sur votre machine locale, exécutez :
ssh-keygen -t ed25519 -C "your_email@example.com"Remarque : ed25519 est l’algorithme moderne et recommandé. Utilisez -t rsa -b 4096 si vous avez besoin de compatibilité avec les anciens systèmes.
Suivez les invites pour enregistrer la clé (emplacement par défaut : ~/.ssh/id_ed25519) et définissez éventuellement une phrase de passe pour une sécurité supplémentaire.
2) Copier votre clé publique sur le serveur distant
ssh-copy-id username@remote_hostCela ajoute votre clé publique au fichier ~/.ssh/authorized_keys sur le serveur distant. Vous serez invité à entrer votre mot de passe une dernière fois.
Si ssh-copy-id n’est pas disponible, vous pouvez le faire manuellement :
cat ~/.ssh/id_ed25519.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"3) Tester l’authentification sans mot de passe
ssh username@remote_hostSi vous vous connectez sans être invité à entrer un mot de passe, l’authentification basée sur les clés fonctionne correctement.
4) Automatiser les transferts avec un script shell
Avec SSH sans mot de passe configuré, vous pouvez maintenant automatiser les transferts de fichiers dans les tâches cron ou les scripts :
#!/bin/bash
# Daily backup script
rsync -avz --delete /var/www/html/ username@backup_server:/backups/www/Ajoutez ceci à votre crontab (crontab -e) pour l’exécuter chaque nuit :
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1Dépannage des problèmes courants de transfert de fichiers SSH

Même les administrateurs expérimentés rencontrent des problèmes. Voici les problèmes les plus courants et leurs solutions :
Permission refusée (publickey)
- Vérifiez que la clé publique est correctement ajoutée à ~/.ssh/authorized_keys sur le serveur distant
- Vérifiez que ~/.ssh a les permissions 700 et authorized_keys a les permissions 600
- Confirmez que le daemon SSH autorise l’authentification par clé (PubkeyAuthentication yes dans /etc/ssh/sshd_config)
Connexion refusée
- Vérifiez que le service SSH est en cours d’exécution : systemctl status sshd
- Vérifiez que le port correct est utilisé
- Examinez les règles du pare-feu : ufw status ou iptables -L
La vitesse de transfert est lente
- Activez la compression : ajoutez -C à SCP ou -z à rsync
- Utilisez un chiffre plus rapide : ssh -c aes128-ctr (moins sécurisé mais plus rapide sur les liaisons à latence élevée)
- Pour les transferts volumineux, envisagez rsync avec –bwlimit pour éviter de saturer votre réseau
Échec de la vérification de la clé d’hôte
- L’empreinte digitale SSH du serveur distant a changé (pourrait indiquer un problème de sécurité ou une reconstruction du serveur)
- Supprimez l’ancienne clé : ssh-keygen -R remote_host
- Reconnectez-vous et vérifiez la nouvelle empreinte digitale avant de l’accepter
Choisir le bon outil : SCP vs. rsync vs. SFTP

| Fonctionnalité | SCP | rsync | SFTP |
|---|---|---|---|
| Facilité d’utilisation | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| Transferts delta | ❌ | ✅ | ❌ |
| Synchronisation de répertoires | ✅ (récursif) | ✅ (avec –delete) | ✅ (manuel) |
| Mode interactif | ❌ | ❌ | ✅ |
| Automatisation | ✅ | ✅ | ✅ (avec scripts) |
| Efficacité de la bande passante | Faible | Élevée | Faible |
| Meilleur pour | Transferts ponctuels rapides | Sauvegardes et synchronisation | Navigation interactive |
Sécuriser vos transferts de fichiers SSH : meilleures pratiques

Quel que soit l’outil que vous utilisez, suivez ces meilleures pratiques de sécurité pour protéger vos serveurs et vos données :
- Désactiver l’authentification par mot de passe — Utilisez exclusivement les clés SSH et définissez PasswordAuthentication no dans /etc/ssh/sshd_config
- Modifier le port SSH par défaut — S’éloigner du port 22 réduit considérablement les tentatives de brute-force automatisées
- Utiliser fail2ban — Interdire automatiquement les adresses IP qui échouent à plusieurs reprises l’authentification
- Restreindre l’accès SSH par adresse IP — Utilisez les règles de pare-feu ou les directives AllowUsers pour limiter qui peut se connecter
- Maintenir SSH à jour — Mettez régulièrement à jour OpenSSH pour corriger les vulnérabilités connues
- Utiliser des algorithmes de clé forts — Préférez ed25519 ou rsa-4096 aux algorithmes plus anciens et plus faibles
- Sécuriser vos applications web — Associez la sécurité SSH à un certificat SSL pour chiffrer tout le trafic vers vos services web
Questions Fréquemment Posées

1) Quelle est la différence entre SCP et SFTP ?
SCP est un outil en ligne de commande non interactif conçu pour les transferts de fichiers rapides et en une seule commande. SFTP est un protocole interactif qui vous permet de parcourir, gérer, télécharger et charger des fichiers dans une interface basée sur les sessions. Les deux utilisent SSH pour le chiffrement.
2) Puis-je utiliser rsync sans SSH ?
Oui — rsync dispose de son propre mode daemon qui fonctionne sans SSH, mais c’est moins sécurisé. Pour tout transfert accessible sur Internet, utilisez toujours rsync sur SSH (rsync -e ssh).
3) Comment transférer des fichiers si mon serveur utilise un port SSH non standard ?
Utilisez le drapeau -P avec SCP (scp -P 2222) ou l’option -e “ssh -p 2222” avec rsync. Pour SFTP, utilisez sftp -P 2222.
4) SCP est-il obsolète ?
Les développeurs d’OpenSSH ont noté que le protocole sous-jacent de SCP a des limitations et recommandent d’utiliser SFTP ou rsync pour les nouveaux flux de travail. Cependant, SCP reste largement disponible et fonctionnel sur pratiquement tous les systèmes.
Conclusion

Maîtriser le transfert de fichiers basé sur SSH est une compétence essentielle pour quiconque gère des serveurs, déploie des applications ou maintient une infrastructure distante. Chaque outil a sa place :
- SCP est votre choix idéal pour les transferts rapides, simples et ponctuels
- rsync est indispensable pour les sauvegardes, les déploiements et la synchronisation efficace de grands ensembles de données
- SFTP excelle dans les sessions interactives où vous devez parcourir et gérer les fichiers à la volée
Combiner ces outils avec l’authentification par clé SSH et des pratiques de sécurité solides vous donne un flux de transfert de fichiers robuste, automatisé et sécurisé qui s’adapte d’un simple compte Shared Web Hosting jusqu’aux architectures multi-serveurs complexes sur Dedicated Servers.
Si vous recherchez un environnement d’hébergement fiable et haute performance pour mettre ces compétences en pratique, explorez les plans VPS Hosting d’AlexHost — conçus pour les développeurs et les sysadmins qui exigent un accès root complet, un stockage SSD et une connectivité réseau de classe entreprise.
sur tous les services d'hébergement