SCP Server : installer et configurer un serveur de transfert sécurisé

Un SCP Server est généralement un serveur SSH/OpenSSH permettant de transférer des fichiers de manière chiffrée entre deux machines. Il n’est pas nécessaire d’installer un service SCP distinct : dès qu’OpenSSH Server est installé et correctement configuré, la commande scp fonctionne sans composant supplémentaire.
Ce fonctionnement surprend souvent les débutants qui recherchent un logiciel nommé « SCP Server », alors que la fonction de transfert sécurisé repose entièrement sur le service sshd, déjà présent nativement sur la plupart des distributions Linux et disponible en composant optionnel sous Windows.
Qu’est-ce que le Secure Copy Protocol
Le Secure Copy Protocol (SCP) est un protocole de transfert de fichiers qui s’appuie sur une connexion SSH pour chiffrer les données échangées entre un client et un serveur distant. Il permet d’envoyer ou de récupérer des fichiers en ligne de commande, sans interface graphique, en réutilisant l’authentification déjà en place pour les connexions SSH classiques.
Historiquement, SCP utilisait son propre protocole de transfert au-dessus de SSH. Depuis OpenSSH 9.0, la commande scp s’appuie par défaut sur SFTP en interne, un protocole plus moderne et plus robuste, tout en conservant la même syntaxe côté utilisateur. L’ancien comportement reste accessible avec l’option -O pour les cas de compatibilité spécifiques.
Installer un serveur OpenSSH sous Windows
Sous Windows Server 2019 et Windows 10 build 1809 ou versions ultérieures, OpenSSH Server est proposé comme composant système facultatif. Il s’installe depuis les paramètres de fonctionnalités optionnelles, en ajoutant le composant « Serveur OpenSSH ».
Une fois installé, le service sshd doit être démarré et configuré en démarrage automatique, afin qu’il reste actif après un redémarrage du serveur. Il est ensuite nécessaire de vérifier qu’une règle de pare-feu autorise les connexions entrantes sur le port TCP 22, faute de quoi les tentatives de connexion échoueront même si le service fonctionne correctement.
Installer un serveur OpenSSH sous Linux
Sur la plupart des distributions Linux, le paquet correspondant à OpenSSH Server s’installe via le gestionnaire de paquets du système, généralement sous le nom openssh-server. Une fois l’installation terminée, le service sshd doit être activé puis démarré, afin qu’il se lance automatiquement à chaque redémarrage de la machine.
Avant d’utiliser la commande scp, il est recommandé de tester une simple connexion SSH vers le serveur, afin de confirmer que l’authentification fonctionne et que le port 22, ou un port personnalisé, est bien accessible depuis la machine cliente.
Sur les distributions utilisant un pare-feu actif par défaut, comme UFW ou firewalld, une règle spécifique doit généralement être ajoutée pour autoriser le trafic entrant sur le port SSH configuré. Sans cette règle, le service sshd peut fonctionner correctement en local tout en restant inaccessible depuis l’extérieur de la machine.
Transférer des fichiers avec la commande scp
Une fois le serveur opérationnel, le transfert de fichiers s’effectue directement en ligne de commande depuis la machine cliente. Pour envoyer un fichier vers le serveur :
scp fichier.txt utilisateur@serveur:/chemin/destination/
Pour télécharger un fichier depuis le serveur vers la machine locale, il suffit d’inverser l’ordre des arguments :
scp utilisateur@serveur:/chemin/fichier.txt ./
La copie récursive d’un dossier entier s’effectue avec l’option -r :
scp -r dossier/ utilisateur@serveur:/chemin/destination/
Lorsque le serveur SSH écoute sur un port différent du port 22 par défaut, il faut préciser ce port avec l’option -P :
scp -P 2222 fichier.txt utilisateur@serveur:/chemin/destination/
Authentification par clé SSH plutôt que par mot de passe
Pour sécuriser davantage les transferts, il est conseillé de configurer une authentification par clé SSH plutôt que par mot de passe. Une paire de clés, générée sur la machine cliente, permet d’associer une clé publique au compte utilisateur du serveur, tandis que la clé privée reste protégée localement.
Cette méthode élimine le risque lié à un mot de passe faible ou deviné, et permet également d’automatiser des transferts de fichiers via des scripts, sans intervention manuelle à chaque connexion.
WinSCP est un client, pas un serveur
Une confusion fréquente consiste à considérer WinSCP comme un serveur SCP. WinSCP est en réalité un client Windows avec interface graphique, permettant de se connecter à des serveurs distants via SCP, SFTP, FTP, WebDAV ou encore un stockage compatible S3.
Pour transférer des fichiers avec WinSCP, un véritable serveur SSH doit déjà être en fonctionnement du côté distant, qu’il s’agisse d’un serveur Linux avec OpenSSH ou d’un serveur Windows avec le composant OpenSSH Server activé. WinSCP ne fournit donc aucun service côté serveur : il se limite à l’initiation de la connexion et à la gestion visuelle des fichiers distants.
SCP ou SFTP : quelle différence
SCP et SFTP reposent tous deux sur une connexion SSH chiffrée, mais SFTP propose des fonctions plus étendues de gestion des fichiers distants, comme la reprise d’un transfert interrompu, la navigation dans l’arborescence ou la suppression de fichiers à distance. SCP se limite à la copie de fichiers, dans un sens ou dans l’autre.
Depuis OpenSSH 9.0, la commande scp utilise SFTP en arrière-plan par défaut, ce qui améliore la fiabilité des transferts tout en conservant une syntaxe identique pour l’utilisateur final. Un serveur SFTP SCP fonctionne donc généralement avec la même configuration OpenSSH, sans distinction technique majeure entre les deux usages du côté du serveur.
Pour les administrateurs qui géraient auparavant des serveurs séparés selon le protocole utilisé, cette évolution simplifie nettement la maintenance : une seule configuration OpenSSH suffit désormais à couvrir aussi bien les transferts SCP que les connexions SFTP, sans avoir à dupliquer les règles de pare-feu ni les comptes utilisateurs autorisés.
Diagnostiquer les erreurs courantes
Plusieurs messages d’erreur reviennent fréquemment lors de la configuration d’un serveur SCP. Le tableau suivant résume les causes les plus probables et les vérifications à effectuer.
| Erreur | Cause probable | Vérification |
|---|---|---|
| Connection refused | Service sshd arrêté ou port fermé | Vérifier l’état du service et le pare-feu |
| Permission denied | Identifiants incorrects ou clé SSH rejetée | Contrôler le nom d’utilisateur et la clé publique associée |
| No such file or directory | Chemin de destination incorrect | Vérifier l’existence du dossier cible sur le serveur |
| Mauvais port | Serveur SSH configuré sur un port non standard | Ajouter l’option -P avec le bon numéro de port |
Une erreur de type « Permission denied » peut également provenir de droits insuffisants sur le dossier de destination, indépendamment de l’authentification elle-même, ce qui justifie de vérifier les permissions du répertoire visé sur le serveur.
Sécuriser un serveur SCP au quotidien
Un serveur SSH exposé, même de façon limitée, reste une cible potentielle sur Internet. Limiter les utilisateurs autorisés à se connecter, via la configuration du service sshd, réduit considérablement la surface d’attaque disponible.
L’attribution de permissions minimales aux comptes utilisés pour les transferts, en évitant tout accès administrateur inutile, limite l’impact d’une éventuelle compromission. Restreindre l’accès au port SSH via le pare-feu, en n’autorisant que les adresses IP nécessaires lorsque c’est possible, complète ces mesures de base pour un serveur de transfert de fichiers sécurisé et maîtrisé.
Il est également conseillé de désactiver l’authentification par mot de passe une fois les clés SSH correctement déployées, afin de ne conserver que l’authentification par clé comme méthode de connexion. Cette configuration, combinée à une surveillance régulière des journaux de connexion du service sshd, permet de repérer rapidement des tentatives d’accès suspectes sur le serveur.
Mettre en place un serveur SCP fiable et sécurisé
Configurer un serveur SCP revient avant tout à installer et sécuriser correctement un serveur OpenSSH, sans composant logiciel supplémentaire. Entre le démarrage du service sshd, l’ouverture maîtrisée du port SSH et l’authentification par clé, un serveur de transfert de fichiers sécurisé se met en place avec des outils déjà présents sur la plupart des systèmes Windows et Linux.
