Aller au contenu

SFTP

SFTP (SSH File Transfer Protocol) transfère des fichiers au-dessus d’une connexion SSH — malgré son nom proche, il n’a aucun rapport technique avec FTP : ce n’est pas FTP encapsulé dans du chiffrement, mais un protocole distinct, conçu autour du canal SSH dès le départ.

SFTP hérite directement des propriétés de SSH :

  • Un seul port (le 22, celui de SSH) — pas de canal de données séparé à négocier, pas de plage de ports à ouvrir sur un pare-feu.
  • Chiffrement et authentification intégrés d’office, avec les mêmes mécanismes que SSH : mot de passe ou paire de clés.
  • Un seul service à exposer et à durcir : sécuriser l’accès SFTP revient à sécuriser l’accès SSH (voir Durcir un accès SSH).

Au-delà du simple envoi/téléchargement de fichier, SFTP permet de naviguer dans l’arborescence distante, créer/supprimer des répertoires, renommer des fichiers, consulter les permissions — une interface proche d’un système de fichiers distant, alors que FTP reste plus limité sur ce plan.

Un cas d’usage fréquent : donner à un prestataire ou un partenaire un accès uniquement au transfert de fichiers, sans lui ouvrir un shell complet sur le serveur. OpenSSH permet de forcer cela via la directive ForceCommand internal-sftp combinée à un chroot (ChrootDirectory), dans une section Match User dédiée de sshd_config :

Match User partenaire
ForceCommand internal-sftp
ChrootDirectory /srv/sftp/%u
AllowTcpForwarding no
X11Forwarding no

Ce compte peut alors transférer des fichiers, mais ne peut ni ouvrir de shell, ni sortir du répertoire qui lui est assigné, ni utiliser SSH comme tunnel.