SFTP (SSH File Transfer Protocol) permet de transférer des fichiers de manière sécurisée via SSH.
Contrairement à FTP, toutes les communications sont chiffrées.
Objectifs :
- installer un accès SFTP
- créer des utilisateurs
- restreindre les accès
- transférer des fichiers
- sécuriser les échanges

Installation
SFTP repose sur SSH.
Installer le serveur SSH :
apt update
apt install openssh-server -y
Vérifier le service :
systemctl status ssh
Activer au démarrage :
systemctl enable ssh
Configuration de base
Fichier principal :
/etc/ssh/sshd_config
Éditer :
nano /etc/ssh/sshd_config
Vérifier que SFTP est activé :
Subsystem sftp /usr/lib/openssh/sftp-server
Création d’un utilisateur SFTP
Créer un utilisateur :
adduser sftpuser
Configuration d’un accès SFTP restreint (chroot)
Créer un groupe
groupadd sftpusers
Ajouter l’utilisateur :
usermod -aG sftpusers sftpuser
Modifier la configuration SSH
Ajouter à la fin de /etc/ssh/sshd_config :
Match Group sftpusers
ChrootDirectory /home/%u
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
Ajuster les droits
Le répertoire racine doit appartenir à root :
chown root:root /home/sftpuser
chmod 755 /home/sftpuser
Créer un dossier accessible :
mkdir /home/sftpuser/files
chown sftpuser:sftpuser /home/sftpuser/files
Redémarrer le service
systemctl restart ssh
Connexion SFTP
Depuis Linux
sftp sftpuser@192.168.1.10
Depuis Windows
Explorateur :
sftp://sftpuser@192.168.1.10
Avec client graphique
Exemples :
- FileZilla
- WinSCP
Paramètres :
Protocole : SFTP
Port : 22
Utilisateur : sftpuser
Mot de passe : défini
Commandes SFTP
| Commande | Description |
|---|---|
ls | Liste les fichiers |
pwd | Répertoire courant |
cd | Changer de dossier distant |
lcd | Changer de dossier local |
get | Télécharger un fichier |
put | Envoyer un fichier |
mkdir | Créer un dossier |
rm | Supprimer un fichier |
rmdir | Supprimer un dossier |
exit | Quitter |
Exemples
Upload
put fichier.txt
Download
get fichier.txt
Navigation
cd files
lcd /home/user/Documents
Permissions et sécurité
Vérifier les droits
ls -l
Modifier les droits
chmod 644 fichier.txt
chmod 755 dossier
Changer propriétaire
chown sftpuser:sftpuser fichier.txt
Utilisation avec clé SSH (recommandé)
Générer une clé côté client :
ssh-keygen
Copier la clé :
ssh-copy-id sftpuser@192.168.1.10
Désactiver le mot de passe (optionnel) :
PasswordAuthentication no
Logs
/var/log/auth.log
Avec systemd :
journalctl -u ssh
Problèmes fréquents
| Problème | Cause | Solution |
|---|---|---|
| Accès refusé | Mauvais droits chroot | vérifier root:root |
| Connexion impossible | SSH arrêté | systemctl status ssh |
| Upload refusé | mauvais droits dossier | vérifier chmod/chown |
| Bloqué dans un dossier | chroot actif | normal |
Bonnes pratiques
- utiliser SFTP plutôt que FTP
- restreindre les utilisateurs (chroot)
- utiliser des clés SSH
- limiter les droits
- surveiller les logs
Fichiers importants
/etc/ssh/sshd_config
/home/sftpuser/
/var/log/auth.log
À retenir
SFTP permet des transferts sécurisés sans configuration complexe supplémentaire.
Points essentiels :
- basé sur SSH
- sécurisé (chiffrement)
- gestion fine des utilisateurs
- possibilité de restreindre les accès
