sftp est le mode interactif du transfert de fichiers SSH. Là où scp copie un fichier en une commande, sftp vous ouvre une session dans laquelle vous naviguez, listez, créez des répertoires et transférez plusieurs fichiers sans vous déconnecter. C’est l’équivalent d’un client FTP classique, mais entièrement chiffré via SSH.
C’est un objectif direct LFCS dans le domaine “Networking” — “Configure the OpenSSH server and client” inclut la maîtrise de sftp comme client de transfert.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Ouvrir une session SFTP et se repérer dans les répertoires local et distant
- Lister, naviguer et créer des répertoires côté distant et local
- Uploader des fichiers avec
putet télécharger avecget - Transférer un répertoire complet avec
put -r/get -r - Utiliser un port SSH personnalisé avec
-P - Reprendre un transfert interrompu avec
reget/reput - Choisir entre SFTP, SCP et rsync selon la situation
SFTP dans l’écosystème des transferts Linux
Section intitulée « SFTP dans l’écosystème des transferts Linux »| Outil | Mode | Spécialité | Quand l’utiliser |
|---|---|---|---|
| sftp | Interactif | Session de navigation + transferts multiples | Explorer un serveur distant, plusieurs fichiers en une session |
| scp | One-shot | Copie rapide d’un fichier ou dossier | Transfert ponctuel, scripting simple |
| rsync | Synchronisation | Delta, reprise, bande passante contrôlée | Backups récurrents, gros volumes |
tar + ssh | Pipeline | Arborescences avec permissions complexes | Migrations, archives sur mesure |
SFTP est le bon choix quand :
- Vous devez explorer un serveur distant avant de décider quoi transférer
- Vous transférez plusieurs fichiers dans différents répertoires en une session
- Vous gérez des serveurs où seul le port 22 est ouvert (pas de NFS ni de partage Samba)
- Vous automatisez des transferts avec des outils qui supportent le protocole SFTP
Ouvrir une session SFTP
Section intitulée « Ouvrir une session SFTP »sftp bob@serveur.example.comVous arrivez dans un prompt interactif :
Connected to serveur.example.com.sftp>Avec un port SSH différent du port 22
Section intitulée « Avec un port SSH différent du port 22 »sftp -P 2222 bob@serveur.example.comAvec une clé SSH spécifique
Section intitulée « Avec une clé SSH spécifique »sftp -i ~/.ssh/id_rsa_backup bob@serveur.example.comNavigation dans une session SFTP
Section intitulée « Navigation dans une session SFTP »Une fois connecté, vous avez accès à deux espaces :
- Le serveur distant — commandé par les commandes SFTP standard
- Votre machine locale — préfixées par un
l(local)
Commandes de navigation
Section intitulée « Commandes de navigation »sftp> pwd # Répertoire courant DISTANTsftp> lpwd # Répertoire courant LOCALsftp> ls # Lister les fichiers distantssftp> ls -la # Avec détails et fichiers cachéssftp> lls # Lister les fichiers locauxsftp> cd /var/log/ # Changer de répertoire distantsftp> lcd ~/Downloads/ # Changer de répertoire localsftp> mkdir saves # Créer un répertoire distantsftp> rmdir old_saves # Supprimer un répertoire distant videTélécharger des fichiers : get
Section intitulée « Télécharger des fichiers : get »sftp> get /var/log/nginx/access.logCe fichier est téléchargé dans le répertoire local courant (visible avec lpwd).
Télécharger vers un nom ou chemin spécifique
Section intitulée « Télécharger vers un nom ou chemin spécifique »sftp> get /var/log/nginx/access.log ~/logs/nginx-access-2026-04-09.logTélécharger plusieurs fichiers avec un glob
Section intitulée « Télécharger plusieurs fichiers avec un glob »sftp> get /var/log/nginx/access.log.*Télécharger un répertoire complet
Section intitulée « Télécharger un répertoire complet »sftp> get -r /var/www/html/ ~/backup/html/Reprendre un téléchargement interrompu
Section intitulée « Reprendre un téléchargement interrompu »sftp> reget /var/backup/dump-complet.tar.gzreget reprend là où le transfert s’est arrêté au lieu de recommencer depuis zéro.
Uploader des fichiers : put
Section intitulée « Uploader des fichiers : put »sftp> put ~/projets/app.conf /etc/app/app.confUploader plusieurs fichiers
Section intitulée « Uploader plusieurs fichiers »sftp> put *.conf /etc/app/Uploader un répertoire complet
Section intitulée « Uploader un répertoire complet »sftp> put -r ~/dev/mon-projet/ /var/www/html/mon-projet/Reprendre un upload interrompu
Section intitulée « Reprendre un upload interrompu »sftp> reput ~/backup/dump-complet.tar.gz /backup/Commandes de gestion de fichiers dans SFTP
Section intitulée « Commandes de gestion de fichiers dans SFTP »sftp> rename ancien.conf nouveau.conf # Renommer côté distantsftp> rm /tmp/fichier-inutile.log # Supprimer côté distantsftp> chmod 640 /etc/app/app.conf # Changer les permissionssftp> chown 1000 /home/bob/fichier # Changer le propriétairesftp> df -h # Espace disque du serveur distantsftp> exit # Quitter la session (ou Ctrl+D)Automatiser des transferts SFTP avec un batch
Section intitulée « Automatiser des transferts SFTP avec un batch »Pour les scripts, sftp accepte un fichier de commandes via -b :
lcd /var/backupcd /archives/linux-srvput config-2026-04-09.tar.gzput db-dump-2026-04-09.sql.gzexitsftp -b /home/bob/backup-sftp.txt bob@serveur-backup.example.comConnexion avec un fichier de configuration SSH
Section intitulée « Connexion avec un fichier de configuration SSH »Si votre ~/.ssh/config définit des alias de connexion, sftp les reconnaît :
Host backup-srv HostName serveur-backup.example.com User bob Port 2222 IdentityFile ~/.ssh/id_rsa_backupsftp backup-srvDépannage courant
Section intitulée « Dépannage courant »| Symptôme | Cause probable | Solution |
|---|---|---|
Connection refused | Port SSH fermé ou service arrêté | Vérifier ssh bob@serveur d’abord |
Permission denied (publickey) | Clé non autorisée côté serveur | Vérifier ~/.ssh/authorized_keys sur le serveur |
Couldn't stat remote file: No such file or directory | Chemin distant incorrect | Utiliser ls et pwd pour vérifier l’arbo distante |
Warning: Permanently added ... to known hosts | Premier accès au serveur | Normal — la clé est mémorisée dans ~/.ssh/known_hosts |
sftp> put ne transfère pas en répertoire | Répertoire cible absent | Créer d’abord avec mkdir côté SFTP |
| Transfert très lent | Chiffrement par défaut | Essayer sftp -o Ciphers=aes128-ctr bob@host pour accélérer en LAN |
À retenir
Section intitulée « À retenir »sftpest le mode interactif du transfert via SSH — naviguer + transférer en session, contrairement àscpqui agit one-shot.- Le prompt
sftp>offre les commandesls/lls,cd/lcd,get/put,reget/reput,mkdir,rm,chmod. -Pmajuscule pour le port SSH (même convention quescp).regetetreputpermettent de reprendre un transfert interrompu.- Pour les scripts, utilisez
sftp -b fichier-batch.txtet une authentification par clé. - Pour les backups récurrents volumineux, rsync reste plus efficace (delta, bande passante contrôlée).