scp : copier des fichiers en toute sécurité

Auteur : Publié le

En bref : En informatique, SCP (Secure Copy Protocol) désigne un moyen de copier des fichiers de façon sécurisée entre ordinateurs. scp est la commande qui permet d’effectuer ce transfert via SSH, une connexion chiffrée à un système distant. Vous pouvez ainsi envoyer un fichier sur un serveur ou télécharger une sauvegarde sur votre ordinateur. Les versions récentes de scp fournies avec OpenSSH utilisent par défaut le protocole SFTP plutôt que l’ancien protocole SCP. Ce sigle apparaît aussi dans le nom de l’univers fictif SCP Foundation : il s’agit d’un autre sens, sans rapport avec le transfert de données.

À quoi sert scp et comment fonctionne-t-il ?

La commande scp copie des données d’une source donnée vers une destination. Elle sert notamment à envoyer l’archive d’un site sur un serveur, à récupérer des journaux pour les analyser ou à copier un fichier de configuration. Vous l’exécutez dans un terminal en indiquant les chemins et les informations d’accès à l’ordinateur distant.

SSH chiffre la connexion et permet l’authentification, c’est-à-dire la vérification de l’identité des parties qui se connectent. L’utilisateur se connecte généralement avec un mot de passe ou une clé SSH. Celle-ci se compose de deux éléments liés : la clé publique est placée sur le serveur, tandis que la clé privée reste sur votre ordinateur et doit être protégée contre toute divulgation.

Le chiffrement du transfert ne signifie toutefois pas que le fichier reste chiffré une fois enregistré sur le disque. scp n’est pas non plus un système de sauvegarde complet : à lui seul, il ne gère ni l’historique des versions, ni la rotation des archives, ni les tests de restauration des données.

Que faut-il préparer avant la copie ?

L’ordinateur depuis lequel vous lancez le transfert doit disposer du client scp. Il est disponible dans de nombreuses installations de Linux et de macOS ; sous Windows, vous pouvez utiliser le client OpenSSH. Pour vérifier la présence de ce dernier, exécutez ssh -V. Pour vérifier celle de scp, lancez scp sans argument : le programme devrait afficher des indications sur sa syntaxe.

Sur le serveur, SSH doit être en service. Le mode par défaut des versions récentes d’OpenSSH nécessite aussi la prise en charge de SFTP. Il vous faut l’adresse du serveur, un nom d’utilisateur, un moyen de vous authentifier et les droits nécessaires sur le répertoire concerné. Un compte donnant uniquement accès à FTP ne suffit pas.

Avant le premier transfert, vous pouvez tester la connexion :

L’adresse 192.0.2.10 est un exemple : remplacez-la par celle de votre serveur. Lors de la première connexion, le client peut vous demander de valider l’empreinte de la clé d’hôte, qui identifie la clé du serveur. Comparez-la aux informations fournies par l’administrateur ou par une interface de gestion fiable de votre prestataire, plutôt que de l’accepter automatiquement.

Comment utiliser scp : trois exemples pratiques

La structure de base de la commande est la suivante :

scp [options] source destination

Un emplacement distant s’écrit le plus souvent sous la forme utilisateur@serveur:chemin. Les deux-points séparent l’adresse du serveur du chemin du fichier ou du répertoire.

Envoyer un fichier sur le serveur : supposons que le répertoire courant contient une archive site.tar.gz que vous souhaitez placer dans le répertoire personnel de l’utilisatrice Anne :

scp strona.tar.gz [email protected]:/home/anne/

Récupérer un fichier du serveur : inversez l’ordre de la source et de la destination. Le point final désigne le répertoire courant de l’ordinateur sur lequel vous exécutez la commande :

scp [email protected]:/home/anne/backup.zip .

Envoyer un répertoire entier : ajoutez l’option -r pour activer la copie récursive, qui inclut le contenu du répertoire et de ses sous-répertoires :

scp -r ./photos [email protected]:/home/anne/

Si SSH utilise un autre port que le port par défaut, 22, indiquez-le avec l’option -P, dont la lettre est majuscule, par exemple scp -P 2222 fichier.txt [email protected]:/home/anne/. L’option -p, en minuscule, a un autre rôle : elle conserve les dates d’accès et de modification ainsi que les bits de permissions du fichier. Placez les chemins locaux contenant des espaces entre guillemets, par exemple "rapport annuel.pdf".

Quand choisir scp, SFTP ou rsync ?

Les noms SCP et SFTP sont parfois confondus, car les deux solutions utilisent SSH. Historiquement, il s’agissait de protocoles de transfert de fichiers distincts. Depuis OpenSSH 9.0, la commande scp effectue par défaut les transferts via SFTP, tout en conservant sa syntaxe habituelle.

En pratique, choisissez l’outil en fonction de la tâche :

Dans OpenSSH, l’option -O impose l’ancien protocole SCP. Considérez-la comme une solution à un problème précis de compatibilité, et non comme un réglage par défaut. Pour connaître les options prises en charge et le comportement de votre version, consultez la documentation locale avec man scp ou la documentation officielle d’OpenSSH.

Erreurs fréquentes et premier transfert sans risque

Le message Permission denied peut signaler un échec d’authentification ou l’absence de droits sur un fichier ou un répertoire. Si la connexion via ssh fonctionne, vérifiez que l’utilisateur distant peut écrire à l’emplacement de destination. No such file or directory indique généralement un chemin incorrect, tandis que Connection refused peut signaler un mauvais port ou un service SSH qui ne fonctionne pas.

scp peut écraser un fichier existant sans demander confirmation. Avant d’envoyer des données, vérifiez l’ordre des arguments et le contenu du répertoire de destination. N’oubliez pas non plus qu’un chemin distant relatif est généralement interprété à partir du répertoire personnel de l’utilisateur, et non du répertoire ouvert sur votre ordinateur.

Pour le premier essai, transférez un petit fichier sans importance vers un répertoire distinct. Une fois le transfert terminé, vérifiez sa présence et son contenu. Utilisez ensuite seulement la même procédure pour vos véritables données.

Voir aussi : Qu’est-ce que l’AGI ?

À lire aussi

Découvrez comment PHP-FPM traite les requêtes PHP, son rôle face au serveur web et comment adapter ses processus au trafic.
Découvrez BIND, logiciel libre de serveur DNS : ses rôles, la gestion des domaines et les cas où le déployer vous-même.
Découvrez le registre polonais REGON, son numéro, ses différences avec NIP et KRS et comment vérifier les données d’une entreprise.