Transférer des fichiers avec SCP sous Windows (CMD, PowerShell et WinSCP)

Pour envoyer un fichier vers un serveur Linux depuis Windows, l’outil SCP permet de passer directement par une connexion SSH, sans installer de client graphique. Sous Windows récent, la commande est généralement disponible dans CMD

Written by: Eddy Masson

Published on: novembre 13, 2026


Pour envoyer un fichier vers un serveur Linux depuis Windows, l’outil SCP permet de passer directement par une connexion SSH, sans installer de client graphique. Sous Windows récent, la commande est généralement disponible dans CMD et PowerShell grâce au client OpenSSH. Si tu préfères sélectionner les fichiers à la souris, WinSCP propose une interface graphique et peut utiliser SCP ou SFTP.

Le choix dépend surtout de la fréquence des transferts et du niveau de contrôle recherché. Une commande convient bien à une sauvegarde ponctuelle ou à un déploiement scripté ; WinSCP rend les transferts répétés plus faciles à vérifier. Dans les deux cas, il faut connaître l’adresse du serveur, le nom du compte et le chemin de destination, puis vérifier l’authentification avant d’envoyer des données sur un site en production.

En bref :

  • SCP copie des fichiers entre Windows et un serveur accessible en SSH.
  • CMD et PowerShell utilisent la même commande scp si le client OpenSSH est installé.
  • Un chemin relatif comme .sauvegarde.zip évite les ambiguïtés liées aux chemins Windows.
  • WinSCP facilite les transferts manuels et affiche clairement les dossiers locaux et distants.
  • Pour des usages réguliers, l’authentification par clé évite de saisir le mot de passe à chaque connexion.

Comprendre SCP et préparer Windows avant le premier transfert

SCP signifie « Secure Copy ». La commande copie un fichier entre deux machines en s’appuyant sur SSH, le protocole qui sert aussi à ouvrir une session distante sécurisée. En pratique, le transfert de fichiers passe par une connexion chiffrée et s’effectue depuis le terminal Windows, sans logiciel tiers si le client OpenSSH est déjà présent.

Le scénario courant est simple : un développeur a préparé une archive de son site Joomla sur son poste, puis la copie dans un répertoire temporaire du serveur distant. Il peut ensuite se connecter en SSH, contrôler l’archive et lancer les opérations de déploiement. Cette séparation est préférable à l’envoi direct dans le répertoire public : une erreur de chemin ne rend pas immédiatement un fichier accessible aux visiteurs.

Dans Windows 10 et Windows 11, le client OpenSSH est souvent installé, mais sa présence dépend de la configuration de la machine. Ouvre CMD ou PowerShell et saisis ssh -V. Si Windows affiche une version, le client est accessible. Pour tester spécifiquement SCP, la commande scp seule affiche généralement une aide ou une erreur indiquant les arguments attendus.

Si la commande est introuvable, ouvre les paramètres Windows et cherche les fonctionnalités facultatives. Le composant à installer est le client OpenSSH, et non le serveur OpenSSH, qui sert à accepter des connexions entrantes sur la machine Windows. Sur un ordinateur administré par une entreprise, l’installation peut être réservée à l’équipe informatique ; mieux vaut vérifier les règles avant de contourner la configuration.

Avant de transférer quoi que ce soit, rassemble les informations suivantes : l’hôte ou l’adresse IP, le nom d’utilisateur SSH, le port du service s’il diffère du port standard, et le chemin exact côté serveur. Le compte doit aussi avoir le droit d’écrire dans le dossier de destination. SCP ne corrige pas un problème de permission : le transfert échouera si l’utilisateur ne peut pas créer le fichier dans ce répertoire.

Lors de la première connexion, SSH peut demander de confirmer l’empreinte de la machine distante. Cette étape sert à mémoriser l’identité du serveur dans le fichier des hôtes connus. Il ne faut pas confirmer machinalement une empreinte reçue par un canal douteux : sur un serveur important, compare-la avec celle fournie par l’hébergeur ou l’administrateur.

Une précaution utile consiste à tester l’accès avec ssh utilisateur@exemple.net avant de lancer SCP. Si cette connexion échoue, le problème vient probablement des identifiants, du réseau, du port ou de la configuration SSH, pas du fichier à transférer. Une fois la session vérifiée, le diagnostic du transfert devient beaucoup plus direct.

découvrez comment transférer des fichiers avec scp sous windows depuis cmd ou powershell, et utiliser winscp pour simplifier vos transferts sécurisés.

Envoyer et récupérer des fichiers avec SCP dans CMD et PowerShell

La forme générale d’une copie est scp source destination. Pour envoyer un fichier local vers un serveur Linux, la source est le fichier du poste Windows et la destination suit la forme utilisateur@hôte:/chemin/distant. Le caractère deux-points sépare le nom de l’hôte du chemin distant ; il ne faut donc pas oublier le slash qui suit l’hôte.

A lire également :  WordPress wp_get_attachment_image : bien afficher une image (exemples et bonnes pratiques)

Depuis un dossier contenant l’archive, la commande peut être : scp .site-test.zip deploy@exemple.net:/home/deploy/. SCP demande le mot de passe si le compte n’utilise pas de clé, puis affiche la progression du transfert. Le chemin relatif .site-test.zip fonctionne dans CMD comme dans PowerShell et évite plusieurs pièges liés aux chemins Windows absolus.

Pour récupérer un fichier du serveur, inverse simplement les deux éléments : scp deploy@exemple.net:/var/backups/site.zip .. Le point désigne le dossier courant. Avant de lancer la commande, vérifie donc le répertoire actif avec pwd dans PowerShell ou cd dans CMD ; un fichier téléchargé au mauvais endroit n’est pas perdu, mais il peut donner l’impression que le transfert a échoué.

Les chemins contenant des espaces demandent des guillemets. Par exemple, scp « .archive du site.zip » deploy@exemple.net:/home/deploy/. Pour une adresse IP et un port SSH différent de 22, l’option est un P majuscule : scp -P 2222 .site.zip deploy@exemple.net:/home/deploy/. Le p minuscule n’a pas le même rôle dans les options SCP ; cette confusion revient souvent dans les commandes copiées depuis des exemples.

Pour copier un dossier entier, ajoute -r : scp -r .images deploy@exemple.net:/var/www/site/. Le transfert inclut alors le contenu des sous-dossiers. Cette méthode est pratique pour un lot limité de fichiers, mais elle ne remplace pas un outil de synchronisation : SCP recopie les éléments demandés et ne compare pas automatiquement tout l’arbre pour supprimer les fichiers obsolètes sur le serveur.

Un cas classique concerne les chemins locaux absolus, tels que C:projetssite.zip. Dans une commande SCP, le caractère deux-points peut être interprété comme le séparateur entre un hôte et son chemin. Pour éviter un comportement ambigu, passe d’abord dans le répertoire voulu avec cd C:projets, puis utilise un chemin relatif. C’est moins spectaculaire qu’une commande compacte, mais nettement plus facile à diagnostiquer.

CMD et PowerShell lancent tous deux le client OpenSSH, mais leur gestion des guillemets et des caractères spéciaux peut varier selon la commande et le contexte. Si un chemin contient des espaces, commence par un exemple simple, puis ajoute les guillemets nécessaires. Pour automatiser un transfert, ne place pas un mot de passe directement dans un script : un fichier de script lisible par d’autres comptes devient alors une fuite d’identifiants.

Pour les opérations liées à un site Joomla, un transfert n’est qu’une étape du déploiement. Une archive envoyée sur le serveur doit être vérifiée avant d’être extraite, et une sauvegarde préalable reste nécessaire si les fichiers existants vont être remplacés. Le guide sur les étapes de réinstallation de Joomla rappelle notamment l’intérêt de distinguer les fichiers applicatifs de la base de données ; SCP ne sauvegarde pas cette dernière à lui seul.

Utiliser une authentification par clé SSH pour éviter les mots de passe

Pour un transfert isolé, saisir un mot de passe peut suffire. Pour les déploiements répétés, l’authentification par clé est plus confortable et évite de stocker un secret dans une commande ou un script. Le principe repose sur une clé privée conservée sur le poste Windows et une clé publique ajoutée au compte distant autorisé à se connecter.

Dans PowerShell, la création d’une clé Ed25519 se fait avec ssh-keygen -t ed25519. L’outil demande où enregistrer les fichiers, puis propose une phrase secrète pour protéger la clé privée. Accepter cette protection est une bonne idée sur un portable ou une machine partagée : la clé privée reste inutilisable sans la phrase secrète, même si quelqu’un copie le fichier.

La clé privée doit rester sur le poste Windows. Le fichier public porte généralement l’extension .pub et peut être transmis à l’administrateur du serveur, ou installé dans le fichier ~/.ssh/authorized_keys du compte distant. Il ne faut jamais envoyer la clé privée au serveur, la publier dans un dépôt Git ou l’ajouter à une archive de projet. Une clé publique n’est pas un mot de passe, mais son association à un compte doit tout de même être contrôlée.

Une fois la clé installée côté serveur, teste d’abord la connexion avec ssh utilisateur@exemple.net. Si la clé n’est pas celle que le client choisit par défaut, indique son chemin avec l’option -i : ssh -i « $HOME.sshid_ed25519 » utilisateur@exemple.net. Si le serveur utilise un port inhabituel, -p s’emploie avec SSH, tandis que SCP utilise -P pour le port. La différence de casse est petite, mais elle suffit à faire perdre du temps.

La même clé peut ensuite servir au transfert : scp -i « $HOME.sshid_ed25519 » .sauvegarde.zip utilisateur@exemple.net:/home/utilisateur/. Le chemin de la clé est encadré par des guillemets, ce qui évite les soucis si le nom du dossier Windows contient des espaces. Si une phrase secrète protège la clé, le client peut la demander ; l’agent SSH permet de la charger en mémoire pour éviter de la saisir à chaque opération.

A lire également :  Protéger un dossier par un mot de passe sous Windows 11 : les solutions simples et sûres

Une clé ne dispense pas de gérer les accès proprement. Pour un compte de déploiement, limite les permissions à ce qui est nécessaire et évite d’utiliser le compte administrateur du serveur pour copier des fichiers. Si un ordinateur est perdu ou qu’un prestataire quitte le projet, retire la clé publique correspondante de authorized_keys. Une clé oubliée reste un accès actif, même si le mot de passe du compte a changé.

Un autre piège apparaît lorsque le serveur n’accepte pas les clés proposées par le client. Le message d’erreur peut parler d’authentification, alors que le transfert fonctionne avec un mot de passe depuis un autre ordinateur. Dans ce cas, vérifie le chemin de la clé, les permissions du dossier SSH côté serveur et la configuration du compte. L’option de diagnostic -v avec SSH affiche les étapes de négociation ; elle est souvent plus utile que de réessayer la même commande en boucle.

Pour un site client, la règle est simple : une clé dédiée par poste ou par personne, un compte aux droits limités et une procédure de révocation connue. C’est un peu plus de préparation au départ, mais cela évite le mot de passe partagé dans un carnet d’équipe ou, pire, dans un fichier de configuration oublié sur un serveur.

Choisir WinSCP pour les transferts manuels et répétitifs

WinSCP est un client graphique pour Windows qui permet de parcourir les dossiers locaux et distants dans deux panneaux. Il convient bien lorsqu’il faut déplacer quelques fichiers, contrôler visuellement la destination ou comparer les noms avant un envoi. Pour un transfert ponctuel sur un serveur de préproduction, cette vue réduit le risque de se tromper de répertoire, à condition de lire attentivement le chemin affiché en haut du panneau distant.

À la création d’une session, renseigne le protocole, l’hôte, le port, le nom d’utilisateur et le mode d’authentification. Pour une connexion SSH habituelle, le port par défaut est 22. WinSCP prend en charge SCP et SFTP ; dans la plupart des configurations modernes, SFTP est un choix plus adapté, car il fournit un protocole de transfert de fichiers conçu pour fonctionner sur SSH et permet des opérations de gestion de fichiers plus complètes.

SCP reste utile pour la compatibilité avec certains systèmes ou certaines habitudes de travail. Il faut toutefois distinguer les deux protocoles dans l’interface : choisir une connexion SSH ne signifie pas automatiquement que le mode de transfert est SCP. La documentation du serveur ou les consignes de l’hébergeur indiquent généralement le protocole attendu. En cas de doute, SFTP est le premier choix raisonnable ; basculer vers SCP uniquement si le serveur ou le contexte l’exige.

Après la connexion, WinSCP demande de confirmer l’identité du serveur si son empreinte n’a jamais été enregistrée. Comme avec la ligne de commande, cette validation ne doit pas devenir un clic automatique. Sur un environnement sensible, compare l’empreinte affichée avec celle transmise par l’administrateur. Une adresse correcte ne suffit pas à prouver que la machine distante est bien celle qu’on croit joindre.

Pour envoyer un fichier, sélectionne-le dans le panneau local, puis dépose-le dans le dossier distant voulu. WinSCP peut afficher une boîte de dialogue de confirmation et une fenêtre de progression. Ce contrôle est appréciable lorsqu’un transfert contient plusieurs fichiers, mais il ne remplace pas une vérification après copie. Compare la taille et le nom du fichier, puis ouvre une session SSH si une vérification plus poussée est nécessaire.

WinSCP sait aussi utiliser une clé privée. Dans les paramètres avancés de la session, indique le fichier de clé associé au compte. Selon le format de la clé, WinSCP peut demander une conversion ou utiliser les formats pris en charge par sa version. Il ne faut pas transformer une clé privée pour la transmettre : les conversions concernent l’usage local du client, et la clé reste secrète dans tous les cas.

Un développeur qui met à jour régulièrement un site peut enregistrer une session, mais il doit éviter d’y conserver un mot de passe si le poste est partagé. Les sessions enregistrées simplifient la connexion, elles ne rendent pas l’ordinateur plus sûr. Pour une équipe, l’authentification par clé, un compte séparé et une liste claire des environnements limitent les erreurs entre préproduction et production.

La limite de WinSCP apparaît quand le transfert doit faire partie d’un processus répétable, déclenché par une tâche ou un déploiement automatisé. Une interface graphique facilite le geste manuel, mais une commande documentée est plus simple à relire dans un historique de projet. Pour un usage régulier, choisis l’outil selon le besoin réel plutôt que d’essayer de faire tout passer par la même méthode.

A lire également :  Clé Windows 10 : trouver, acheter ou obtenir une licence gratuite
Besoin Méthode conseillée Point de vigilance
Envoyer rapidement un fichier isolé SCP dans CMD ou PowerShell Vérifier le chemin local et le dossier distant
Transférer plusieurs fichiers manuellement WinSCP en SFTP ou SCP Contrôler le protocole et l’empreinte du serveur
Répéter un transfert dans un script OpenSSH avec clé dédiée Ne jamais stocker la clé privée dans le dépôt
Synchroniser un grand arbre de fichiers Outil de synchronisation adapté SCP ne supprime pas automatiquement les fichiers distants obsolètes

Pour une réinstallation ou une migration Joomla, les fichiers ne représentent qu’une partie du travail. Le transfert par SCP ou WinSCP ne remplace ni l’export de la base de données ni les contrôles après déploiement. Le guide consacré à la réinstallation d’un site Joomla peut servir de repère pour ordonner ces opérations sans confondre copie de fichiers et restauration complète.

Diagnostiquer les erreurs SCP et éviter les mauvaises surprises

Quand SCP échoue, le message affiché donne souvent une piste, mais il faut distinguer les causes. Une erreur de résolution de nom indique généralement un hôte mal saisi ou un problème DNS. Une connexion expirée pointe plutôt vers un port bloqué, une adresse incorrecte ou un serveur indisponible. Une erreur « permission denied » concerne le compte, la clé ou les droits sur le fichier et le dossier distant.

Commence par tester SSH sans transfert : ssh utilisateur@exemple.net. Si cette commande ne se connecte pas, lancer SCP avec un chemin différent ne résoudra rien. Vérifie le port auprès de l’hébergeur, puis teste la connexion avec l’option correspondante. Une adresse IP peut aider à isoler un problème DNS, mais ne remplace pas la vérification de l’identité du serveur.

Une destination mal écrite est une autre source fréquente d’échec. Dans utilisateur@exemple.net:/home/utilisateur/, le deux-points après l’hôte est indispensable. Le répertoire doit exister et être accessible au compte. Pour confirmer le chemin, ouvre une session SSH et exécute une commande de navigation ou de liste de fichiers ; cela permet de vérifier que la destination n’est pas une supposition basée sur le nom du site.

Les transferts de répertoires peuvent aussi produire des surprises. Avec -r, SCP copie l’arborescence, mais ne réalise pas une synchronisation intelligente. Si un ancien fichier reste dans le dossier distant, SCP ne le supprime pas parce qu’il a disparu du poste local. À l’inverse, copier un dossier au mauvais niveau peut créer une structure imbriquée, par exemple site/site/, au lieu de remplacer le contenu attendu.

Sur OpenSSH récent, SCP utilise par défaut le protocole SFTP pour effectuer les transferts. Cela améliore la compatibilité avec les chemins et certaines configurations, tout en conservant la commande scp. Si tu rencontres un serveur ancien qui dépend du protocole SCP historique, l’option -O peut rétablir ce mode, mais ce devrait être un contournement ciblé, pas l’option ajoutée par réflexe à toutes les commandes.

Pour suivre un transfert qui semble bloqué, commence par un fichier de petite taille et active le diagnostic avec -v. Cela permet de voir la connexion, l’authentification et la négociation du protocole. Sur un réseau lent, une archive volumineuse peut prendre du temps sans être bloquée ; une fermeture du terminal ou une interruption prématurée laissera un transfert incomplet, que le serveur peut tout de même afficher sous son nom final.

Sur un serveur de production, envoie d’abord les fichiers dans un répertoire temporaire, puis vérifie leur présence avant de les déplacer. Cette méthode réduit le risque d’écraser un fichier actif pendant un transfert interrompu. Pour une mise à jour Joomla, prévois aussi une sauvegarde des fichiers et de la base de données : SCP protège le transport, pas l’état applicatif ni la possibilité de revenir en arrière.

Enfin, conserve une trace des commandes utiles sans y inclure de secrets. Un petit fichier de procédure peut préciser l’hôte, le port, le compte de déploiement et le dossier cible, tandis que la clé privée reste hors du dépôt. Quand une commande ne fonctionne plus après une modification du serveur, cette documentation aide à identifier ce qui a changé au lieu de reconstruire le contexte de mémoire.

SCP est-il déjà disponible dans Windows ?

Le client OpenSSH, qui fournit scp, est souvent présent dans les versions récentes de Windows 10 et Windows 11. Testez avec ssh -V dans CMD ou PowerShell ; si la commande est absente, installez le client OpenSSH depuis les fonctionnalités facultatives de Windows.

Quelle différence entre SCP et SFTP dans WinSCP ?

Les deux utilisent SSH, mais ce sont des protocoles de transfert différents. SCP reste utile pour certains serveurs anciens ou certains usages de compatibilité ; SFTP est généralement préférable sur les configurations modernes et offre des fonctions de gestion de fichiers plus étendues.

Comment envoyer un dossier complet avec SCP ?

Ajoutez l’option -r avant la source, par exemple scp -r .\images utilisateur@exemple.net:/var/www/site/. Vérifiez le chemin de destination et gardez à l’esprit que SCP ne supprime pas les fichiers distants absents du dossier local.

Faut-il utiliser une clé SSH pour chaque transfert ?

Ce n’est pas obligatoire pour une copie ponctuelle, mais une authentification par clé convient mieux aux transferts répétés et aux scripts. Gardez la clé privée sur le poste autorisé, protégez-la par une phrase secrète et retirez la clé publique du serveur lorsqu’elle n’est plus nécessaire.

Laisser un commentaire

Précédent

Windows n’a pas pu effectuer le formatage : causes et solutions (clé USB, carte SD, disque dur)