SFTP Linux · 6 min read · Sep 24, 2025
Comment installer et utiliser SFTP sur les serveurs Linux

SFTP ou SSH File Transfer Protocol est une méthode pour transférer des données de manière sécurisée entre deux ordinateurs et plus. C’est FTP qui fonctionne sur le protocole SSH et tire parti de sa sécurité, et prend entièrement en charge son authentification.
Aujourd’hui, il est recommandé d’utiliser SFTP au lieu du protocole FTP ou FTP/S hérité. SFTP est sécurisé par défaut car c’est ainsi que fonctionne SSH. D’un point de vue sécurité, SFTP vous protège également contre l’écoute de mots de passe et les attaques de type homme du milieu (MiTM).
Tout comme SSH, SFTP protège l’intégrité des données en utilisant le chiffrement et une fonction de hachage cryptographique. Il prend également en charge plusieurs méthodes d’authentification sécurisées, y compris l’authentification par mot de passe et par clé. De plus, il réduit le port ouvert du serveur vers le réseau extérieur car il fonctionne sur le même port que le protocole SSH.
Prérequis
Dans ce guide, vous apprendrez à configurer un serveur SFTP sur un système Linux. Vous apprendrez également la commande de base du client sftp.
Voici l’environnement actuel pour l’implémentation :
- Un serveur Linux - vous pouvez utiliser Debian, Ubuntu, CentOS, Fedora, Rocky ou toute autre distribution Linux.
- Assurez-vous que les paquets OpenSSH sont disponibles sur votre système Linux.
- Client SFTP - commande sftp en ligne de commande ou tout client GUI selon votre préférence.
Vérifier les paquets OpenSSH
Pour configurer un serveur SFTP, les paquets OpenSSH doivent être installés sur votre système Linux. Presque tous les serveurs de distribution Linux ont les paquets OpenSSH installés par défaut. Mais, au cas où vous n’auriez pas le paquet OpenSSH sur votre système, vous pouvez l’installer depuis le dépôt officiel.
- Pour vous assurer que les paquets OpenSSH sont installés sur votre système Linux, utilisez la commande suivante.
Pour les serveurs Debian ou Ubuntu, vous pouvez utiliser la commande dpkg ci-dessous.
dpkg -l | grep sshVoici la sortie de notre système Debian.
ii libssh2-1:amd64 1.9.0-2 amd64 Bibliothèque côté client SSH2
ii openssh-client 1:8.4p1-5 amd64 client de shell sécurisé (SSH), pour un accès sécurisé aux machines distantes
ii openssh-server 1:8.4p1-5 amd64 serveur de shell sécurisé (SSH), pour un accès sécurisé depuis des machines distantes
ii openssh-sftp-server 1:8.4p1-5 amd64 module serveur sftp de shell sécurisé (SSH), pour un accès SFTP depuis des machines distantesLa première colonne ‘ ii ‘ signifie que le paquet est installé. Le paquet ‘ openssh-sftp-server ‘ est installé sur le système Debian/Ubuntu.
Vous pouvez utiliser la commande rpm ci-dessous pour les utilisateurs RHEL/CentOS/Fedora/Rocky Linux/AlmaLinux.
rpm -qa | grep sshCréer un groupe et un utilisateur
À cette étape, vous allez créer un nouveau groupe et un utilisateur pour le serveur SFTP. Les utilisateurs de ce groupe seront autorisés à accéder au serveur SFTP. Pour des raisons de sécurité, les utilisateurs SFTP ne peuvent pas accéder au service SSH ; ils ne peuvent accéder qu’au serveur SFTP.
- Exécutez la commande suivante pour créer un nouveau groupe ‘ sftpgroup ‘.
sudo groupadd sftpgroup- Créez un nouvel utilisateur ‘ sftpuser ‘ en utilisant la commande suivante.
sudo useradd -G sftpgroup -d /srv/sftpuser -s /sbin/nologin sftpuserOptions détaillées :
- -G : ajoute automatiquement l’utilisateur au groupe ‘ sftpgroup ‘.
- -d : spécifie le répertoire personnel pour le nouvel utilisateur.
- -s : définit la valeur par défaut pour le nouvel utilisateur sur ‘ /sbin/nologin ‘, ce qui signifie que l’utilisateur ne peut pas accéder au serveur SSH.
- Ensuite, créez le mot de passe pour l’utilisateur ‘ sftpuser ‘ en utilisant la commande ci-dessous.
passwd sftpuserTapez votre mot de passe fort et répétez, puis appuyez sur ‘ Entrée ‘ pour confirmer.

Pour ajouter plus d’utilisateurs, répétez les étapes numéro 2 et 3, et surtout, tous les utilisateurs SFTP doivent être dans le groupe ‘ sftpgroup ‘ sans accès shell via SSH.
Configurer le répertoire Chroot Jail
Après avoir créé un nouveau groupe et un utilisateur, vous devez créer et configurer le répertoire chroot pour les utilisateurs SFTP.
- Pour l’utilisateur ‘sftpuser’, le nouveau répertoire personnel sera à ‘/srv/sftpuser‘. Exécutez la commande ci-dessous pour le créer.
mkdir -p /srv/sftpuser- Pour configurer chroot pour l’utilisateur ‘ sftpuser ‘, vous devez changer la propriété du répertoire à l’utilisateur root, mais laisser le groupe pour lire et exécuter sans accès en écriture.
Changez la propriété du répertoire à l’utilisateur ‘root’ en utilisant la commande suivante.
sudo chown root /srv/sftpuserDonnez au groupe la permission de lire et d’exécuter, mais pas d’écrire.
sudo chmod g+rx /srv/sftpuser- Ensuite, créez un nouveau répertoire ‘data’ à l’intérieur du répertoire ‘ /srv/sftpuser ‘ et changez la propriété de ce répertoire ‘ data ‘ à l’utilisateur ‘ sftpuser ‘.
mkdir -p /srv/sftpuser/data
chown sftpuser:sftpuser /srv/sftpuser/data
Jusqu’à présent, voici les détails de la configuration pour le répertoire utilisateur SFTP.
- Le répertoire ‘ /srv/sftpuser ‘ est le répertoire personnel par défaut.
- L’utilisateur ‘ sftpuser ‘ ne peut pas écrire dans le répertoire ‘ /srv/sftpuser ‘, mais peut lire à l’intérieur de ce répertoire.
- L’utilisateur ‘ sftpuser ‘ peut télécharger des fichiers sur le serveur SFTP dans le répertoire ‘ /srv/sftpuser/data ‘.
Activer SFTP sur le serveur SSH
Pour activer le serveur SFTP sur l’OpenSSH, vous devez modifier la configuration SSH ‘/etc/ssh/sshd_config’.
- Modifiez la configuration ssh ‘ /etc/ssh/sshd_config ‘ en utilisant nano ou vim.
sudo nano /etc/ssh/sshd_config- Commentez la configuration suivante pour désactiver la fonctionnalité autonome ‘ sftp-server ‘.
#Subsystem sftp /usr/lib/openssh/sftp-server- Collez la configuration suivante en bas de la ligne.
Subsystem sftp internal-sftp
Match Group sftpgroup
ChrootDirectory %h
X11Forwarding no
AllowTCPForwarding no
ForceCommand internal-sftpEnregistrez la configuration et quittez.
Configuration détaillée :
- Au lieu d’utiliser le sous-processus ‘ sftp-server ‘, nous utilisons ‘ internal-sftp ‘.
- Le serveur SFTP est activé pour le groupe ‘ sftpgroup ‘.
- Pour appliquer une nouvelle configuration, redémarrez le service ssh en utilisant la commande ci-dessous.
sudo systemctl restart sshdLe serveur SFTP est prêt et accessible, et il fonctionne sur le même port que le service SSH.
Accéder au serveur SFTP
Du côté client, nous utiliserons la ligne de commande sftp, qui est installée par défaut sur la plupart des distributions Linux. Mais, vous pouvez également utiliser un autre client en ligne de commande ou un client FTP GUI tel que FileZilla, Cyberduck, etc.
- Pour vous connecter au serveur SFTP, exécutez la commande sftp comme ci-dessous.
sftp ftpuser@SERVER-IPSi votre serveur SFTP et/ou SSH fonctionne sur un port personnalisé, vous pouvez utiliser la commande sftp comme ci-dessous.
sftp -P PORT ftpuser@SERVER-IPTapez le mot de passe pour l’ ‘ sftpuser ‘.
- Une fois connecté au serveur SFTP, exécutez la commande suivante.
Afficher le chemin actuel du répertoire de travail et lister tous les fichiers et répertoires disponibles.
pwd
ls
- Téléchargez un fichier local sur le serveur SFTP dans le répertoire ‘/ ‘, ce qui entraînera ‘ permission denied ‘, car c’est le répertoire chroot.
put /path/to/file/on/local /- Téléchargez un fichier local dans le répertoire ‘ /data/ ‘ sur le serveur SFTP. Si votre configuration est correcte, votre fichier sera téléchargé dans le répertoire ‘ /data/ ‘.
put /path/to/file1/on/local1 /data/
put /path/to/file2/on/local /data/
- Maintenant, vérifiez les fichiers disponibles dans le répertoire ‘ /data ‘ en utilisant la commande suivante.
ls /data/Et vous verrez votre fichier téléchargé sur le serveur SFTP.
Conclusion
Félicitations ! Vous avez configuré avec succès le serveur SFTP sur le système Linux. Ce type de configuration peut être appliqué sur la plupart des systèmes Linux avec OpenSSH installé dessus. De plus, vous avez appris à configurer le répertoire chroot pour les utilisateurs SFTP et appris la commande de base du client sftp.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.