DomainePrivé Hébergement
Sécurité & données

Server SCP : transférer fichiers et dossiers sans confondre -P et -p

Maël de Kerbrat 7 min de lecture
Server scp : -P et -p pour transfert fichiers et dossiers sans confondre

Pour envoyer un fichier vers un serveur via SSH, utilisez scp fichier.txt utilisateur@serveur:/chemin/. Pour le récupérer, inversez la source et la destination. Un dossier nécessite l’option -r. Ces commandes chiffrent le transfert, mais leur réussite dépend aussi du port SSH, des droits du compte distant et du chemin choisi.

Commencer par les commandes adaptées au sens du transfert

La syntaxe reste la même : scp [options] source destination. Remplacez les noms d’utilisateur, de serveur et de fichier des exemples par vos propres valeurs. Le préfixe utilisateur@serveur:, avec ses deux-points, désigne une ressource distante. Sans ce préfixe, le chemin est local à la machine depuis laquelle vous lancez la commande.

Schéma server scp des transferts entre machine locale et serveurs distants
Schéma server scp des transferts entre machine locale et serveurs distants

Envoyer un fichier ou récupérer une copie distante

Pour envoyer le fichier local rapport.pdf dans le répertoire personnel du compte distant, exécutez :

scp rapport.pdf alice@serveur:/home/alice/

Pour télécharger ce même fichier dans votre répertoire courant, placez la ressource distante en premier. Le point final désigne le dossier local courant :

scp alice@serveur:/home/alice/rapport.pdf .

Le répertoire cible doit déjà exister. Le compte distant doit pouvoir lire le fichier lors d’un téléchargement, ou écrire dans le dossier lors d’un envoi. SCP ne donne pas automatiquement des privilèges administrateur.

Copier un dossier ou transférer entre deux serveurs

Ajoutez -r pour copier un répertoire et son contenu, sous-répertoires compris. Dans cet exemple, le dossier projet est envoyé dans le répertoire personnel d’Alice :

scp -r projet alice@serveur:/home/alice/

Pour copier entre deux machines distantes en faisant passer les données par votre poste, indiquez deux chemins distants et l’option -3 :

scp -3 alice@serveur-a:/home/alice/rapport.pdf bob@serveur-b:/home/bob/

Votre poste doit alors pouvoir joindre les deux serveurs et s’y authentifier. Ce relais consomme également la bande passante de votre connexion locale.

Comprendre le serveur SCP et choisir les bonnes options

SCP signifie Secure Copy. La commande utilise SSH pour le transport chiffré et l’authentification ; aucun serveur FTP séparé n’est nécessaire. Depuis OpenSSH 9.0, la commande scp utilise SFTP par défaut. Il faut donc distinguer l’outil nommé scp de l’ancien protocole SCP.

Sur un serveur moderne, un accès SSH fonctionnel et un sous-système SFTP disponible permettent généralement ces transferts. Le port SSH par défaut est 22.

Option Usage concret
-r Copier récursivement un dossier.
-P 2222 Utiliser le port SSH 2222, avec un P majuscule.
-p Préserver les dates d’accès et de modification ainsi que les permissions.
-i ~/.ssh/id_ed25519 Sélectionner une clé privée SSH.
-C Activer la compression SSH.
-v Afficher les détails utiles au diagnostic.
-l 800 Limiter le débit à 800 Kbit/s.
-O Forcer l’ancien protocole SCP pour un besoin de compatibilité.

Une commande combinant port personnalisé et clé spécifique s’écrit ainsi :

scp -P 2222 -i ~/.ssh/id_ed25519 rapport.pdf alice@serveur:/home/alice/

-P et -p ne sont pas interchangeables. La limitation avec -l s’exprime en Kbit/s : 800 Kbit/s correspondent à environ 100 Ko/s, tandis que 100 Kbit/s correspondent à environ 12,5 Ko/s. La compression profite surtout aux contenus compressibles, moins aux archives déjà compressées.

Pour les usages avancés, -o transmet des options SSH, -F sélectionne une configuration alternative et -c un algorithme de chiffrement. L’option -R demande une exécution depuis le serveur source pour un transfert distant-distant, avec une authentification source-destination à prévoir. Vérifiez les particularités de votre version avec man scp.

Corriger les erreurs sans multiplier les essais au hasard

Commencez par tester une connexion simple avec ssh alice@serveur, en ajoutant -p 2222 à SSH si nécessaire. Attention : SSH utilise un p minuscule pour le port, contrairement à scp. Si cette connexion échoue, réglez d’abord le problème d’accès avant de modifier la commande de copie.

  • Permission denied : vérifiez le compte et la clé si l’authentification échoue ; si la connexion aboutit, contrôlez les permissions du fichier ou du dossier cible.
  • No such file or directory : vérifiez le chemin et l’existence du répertoire parent. Préférez un chemin absolu pour lever les ambiguïtés.
  • Connection refused : contrôlez le port et le service SSH. Un délai d’attente peut aussi signaler un filtrage réseau.
  • Host key verification failed : vérifiez l’identité du serveur et un éventuel changement de clé auprès de l’administrateur, plutôt que de désactiver le contrôle.
  • Copie d’un dossier refusée : ajoutez -r si vous avez fourni un répertoire comme source.

Les espaces exigent de protéger le chemin pour que le terminal le traite comme un seul argument. Avec scp moderne utilisant SFTP, un exemple de téléchargement est :

scp ‘alice@serveur:/home/alice/rapport final.pdf’ .

Le protocole historique activé par -O peut nécessiter un échappement supplémentaire, car le shell distant intervient aussi. Évitez de basculer vers cet ancien mode uniquement pour contourner une erreur de chemin.

Enfin, SCP ne reprend pas nativement un transfert interrompu : relancer la copie retransmet généralement le fichier. Un fichier existant peut également être écrasé sans confirmation ; vérifiez la destination avant validation.

Sécuriser la destination et vérifier le résultat

Utilisez un compte non root avec les seuls droits nécessaires. Pour une authentification par clé, la clé publique est autorisée côté serveur, généralement dans authorized_keys ; la clé privée reste sur votre poste. Protégez-la et utilisez, si possible, une phrase secrète avec un agent SSH.

Une destination de déploiement ne doit pas être un moule dans lequel on verse indistinctement toute l’arborescence locale. Copiez d’abord dans un répertoire de réception dédié, contrôlez les fichiers présents, puis publiez uniquement le contenu attendu. Cette séparation évite qu’un fichier de test, un secret ou une ancienne configuration rejoigne accidentellement le dossier utilisé par l’application.

Après transfert, contrôlez le nom, la taille, le propriétaire et les permissions avec ls -l ou stat. Pour un fichier sensible, comparez les empreintes obtenues avec sha256sum rapport.pdf sur les deux machines. L’option -p ne garantit pas la conservation du propriétaire, des ACL ou des attributs étendus.

Dans un script ou un pipeline CI/CD, employez une clé dédiée, conservez la vérification de la clé d’hôte et contrôlez le code de sortie : zéro signale une réussite. Avec -o BatchMode=yes, une authentification impossible échoue au lieu d’attendre une saisie interactive.

Choisir SCP, rsync ou une interface graphique selon le besoin

SCP convient surtout à une copie ponctuelle dont vous connaissez précisément les chemins. Pour des transferts réguliers ou une connexion instable, choisissez l’outil selon le travail à accomplir.

Outil Quand le privilégier
SCP Envoyer ou récupérer rapidement un fichier ou un dossier.
SFTP Parcourir les dossiers distants et gérer des transferts interactifs via SSH.
rsync via SSH Synchroniser des arborescences et conserver des transferts partiels avec les options adaptées.
SSHFS Monter un dossier distant plutôt que créer une copie indépendante.
WinSCP Utiliser une interface graphique sous Windows, notamment avec SFTP.

Contrairement à ces solutions utilisant SSH, FTP classique ne chiffre pas les échanges. Sous Windows, scp peut être lancé depuis PowerShell si le client OpenSSH est installé. Pour une machine virtuelle Azure, le principe reste identique : adresse joignable, compte autorisé, clé correcte et accès réseau au port SSH. Avant un gros transfert, testez toujours avec un petit fichier dans le répertoire réellement prévu.

Maël de Kerbrat

Partager cet article

Retour en haut