Le protocole SSH (Secure Shell) est un protocole réseau permettant la gestion de systèmes d’exploitation via la ligne de commande à distance. Il est largement considéré comme la norme pour l’accès distant aux machines *nix. SSH permet une connexion sécurisée à un serveur, l’exécution de commandes à distance, la gestion de fichiers (création, suppression, copie, etc.) et bien plus. La plupart des fournisseurs de cloud et d’hébergement exigent SSH pour accéder à leurs services. Dans cet article, nous verrons comment copier des fichiers via SSH sur les systèmes Windows et Linux.
SSH peut transmettre n’importe quel type de données (audio, vidéo, données de protocole applicatif) via un canal de communication chiffré. Contrairement aux protocoles obsolètes et non sécurisés comme Telnet et rlogin, SSH garantit la confidentialité et l’authenticité des données — des éléments essentiels pour les communications sur Internet.
Voici comment une connexion sécurisée entre un client et un serveur est établie :
Établissement de la connexion TCP : Par défaut, le serveur écoute sur le port 22. Les deux parties partagent une liste d’algorithmes pris en charge (compression, chiffrement, échange de clés) et conviennent de ceux à utiliser.
Authentification : Pour éviter l’usurpation d’identité, les deux parties vérifient leurs identités à l’aide du chiffrement asymétrique (paires de clés publique/privée). Le serveur est authentifié en premier. Lors de la première connexion, le client affiche un avertissement avec les détails du serveur. Les clés de serveurs de confiance sont stockées dans /home/<username>/.ssh/known_hosts.
Génération de clé : Une fois le serveur vérifié, les deux parties génèrent une clé symétrique pour chiffrer toutes les données échangées.
L’implémentation la plus populaire sous Linux est OpenSSH, qui est préinstallée sur la plupart des distributions (Ubuntu, Debian, RHEL, etc.). Sous Windows, des clients comme PuTTY ou MobaXterm sont utilisés. Depuis Windows 10 et Server 2019, les outils OpenSSH sont également disponibles nativement.
Deux utilitaires principaux pour copier des fichiers via SSH sous Linux sont scp et sftp. Les deux sont inclus dans OpenSSH.
SSH prend en charge deux versions de protocole : 1 et 2. OpenSSH prend en charge les deux, mais la version 1 est rarement utilisée.
Pour activer l’autocomplétion avec la touche Tab lors de l’utilisation de scp, configurez l’authentification par clé publique :
Générer une paire de clés :
ssh-keygen
Exemple de sortie :
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Par défaut, vos clés (id_rsa pour la clé privée et id_rsa.pub pour la clé publique) sont enregistrées dans ~/.ssh/.
Copier la clé publique sur la machine distante :
ssh-copy-id [username]@[ip-address]
Après avoir saisi le mot de passe de l’utilisateur, un message confirmera que la clé a été ajoutée.
Pour les petits transferts de données (par ex. fichiers de configuration), scp est idéal.
Copier du local vers le distant :
scp test.txt user@192.168.1.29:/home/user/
Copier plusieurs fichiers :
scp test1.txt test2.txt user@192.168.1.29:/home/user/
Copier du distant vers le local :
scp user@192.168.1.29:/home/user/test.txt ~/
Copier des répertoires :
scp -r testdir user@192.168.1.29:/home/user/
Copier d’un serveur à un autre :
scp gendo@192.168.1.25:/home/gendo/test.txt user@192.168.1.29:/home/user/
SFTP est un autre utilitaire inclus dans OpenSSH. Depuis OpenSSH 9.0, scp utilise par défaut SFTP au lieu de l’ancien protocole SCP/RCP.
Contrairement au FTP classique, sftp transmet les données chiffrées via un tunnel sécurisé. Il ne nécessite pas de serveur FTP séparé.
Exemple d’utilisation :
sftp misato@192.168.1.29
sftp> ls
sftp> lcd testdir/
sftp> get test.txt
sftp> bye
Des gestionnaires de fichiers graphiques comme Midnight Commander ou Nautilus utilisent également sftp. Dans Nautilus, le serveur distant apparaît comme un dossier local, par exemple user@ip.

Sous Windows, l’outil en ligne de commande pscp de PuTTY est utilisé pour copier des fichiers.
Copier vers le serveur :
pscp C:\server\test.txt misato@192.168.1.29:/home/misato/
Copier depuis le serveur :
pscp misato@192.168.1.29:/home/misato/test.txt C:\file.txt
Lister les fichiers sur le serveur distant :
pscp -ls user@192.168.1.29:/home/misato
Utiliser des guillemets pour les chemins contenant des espaces :
pscp "C:\dir\bad file name.txt" misato@192.168.1.29:/home/misato/
Afficher l’aide :
pscp
Nous avons vu comment copier des fichiers vers et depuis un serveur en utilisant le protocole SSH sécurisé. Si vous travaillez avec des serveurs cloud, comprendre SSH est essentiel — c’est la méthode standard d’accès à distance aux machines *nix et un élément clé de l’administration système et du DevOps quotidien.