1. SFTP vs FTP : quelle différence ?

Beaucoup de gens connaissent le FTP (File Transfer Protocol), le protocole historique de transfert de fichiers. Le problème : FTP envoie vos identifiants et vos fichiers en clair sur le réseau. N'importe qui qui intercepte le trafic peut lire vos mots de passe et vos données.

SFTP (SSH File Transfer Protocol) résout ce problème en passant par le canal SSH, qui est chiffré de bout en bout. C'est une technologie complètement différente de FTP malgré la ressemblance du nom.

FTP SFTP
Chiffrement ❌ Aucun, données en clair ✅ Chiffrement AES via SSH
Port 21 22 (même que SSH)
Authentification Mot de passe en clair Clé SSH ou mot de passe chiffré
Config serveur Serveur FTP à installer Rien - natif si SSH est actif
Sécurité ❌ Déconseillé ✅ Recommandé
💡

Bonne nouvelle : Si SSH fonctionne sur votre VPS (ce qui est le cas si vous avez suivi le guide de configuration initiale), SFTP fonctionne automatiquement - aucune installation ou configuration supplémentaire n'est nécessaire côté serveur.

2. Méthode graphique : FileZilla

FileZilla est le client FTP/SFTP gratuit le plus populaire. Il propose une interface visuelle avec deux panneaux côte à côte : vos fichiers locaux à gauche, les fichiers du VPS à droite. Vous transférez par glisser-déposer.

1

Télécharger FileZilla

Rendez-vous sur filezilla-project.org et téléchargez FileZilla Client (pas FileZilla Server) pour votre système d'exploitation. Installez-le normalement.

2

Ouvrir le Gestionnaire de sites

Lancez FileZilla. Allez dans Fichier → Gestionnaire de sites (ou appuyez sur Ctrl+S). Cliquez sur Nouveau site et donnez-lui un nom (ex: "Mon VPS CroustyCloud").

3

Configurer la connexion SFTP

Remplissez les champs suivants dans le panneau de droite :

bash
Protocole : SFTP – SSH File Transfer Protocol Hôte : VOTRE-IP-VPS Port : 2222 (ou votre port SSH personnalisé) Type : Demander le mot de passe Identifiant : votre-utilisateur
⚠️

Vous utilisez des clés SSH ? Changez "Type" en Fichier de clé et indiquez le chemin vers votre clé privée (ex: C:\Users\Vous\.ssh\croustycloud_ed25519 sous Windows ou ~/.ssh/croustycloud_ed25519 sous macOS/Linux).

4

Se connecter et transférer

Cliquez sur Connexion. FileZilla vous demande éventuellement de confirmer l'empreinte du serveur - cliquez Valider. Vous voyez maintenant vos fichiers locaux à gauche et les fichiers de votre VPS à droite.

Pour transférer des fichiers :

  • Upload (local → VPS) : faites glisser depuis le panneau gauche vers le droit
  • Download (VPS → local) : faites glisser depuis le panneau droit vers le gauche
  • Clic droit sur un fichier pour plus d'options (renommer, supprimer, modifier les permissions...)

3. Méthode ligne de commande : sftp

Si vous préférez la ligne de commande (ou si vous êtes sur Linux/macOS), sftp est disponible nativement.

bash
# Se connecter sftp -P 2222 votre-user@VOTRE-IP-VPS # Vous êtes maintenant dans un shell SFTP interactif sftp>

Les commandes disponibles dans le shell SFTP :

bash
sftp> ls # Lister les fichiers côté serveur sftp> lls # Lister les fichiers côté local ("l" = local) sftp> pwd # Afficher le dossier courant sur le serveur sftp> lpwd # Afficher le dossier courant local sftp> cd /var/www/html # Naviguer sur le serveur sftp> lcd ~/Documents # Naviguer localement sftp> put mon-fichier.html # Envoyer un fichier local vers le serveur sftp> put -r mon-dossier/ # Envoyer un dossier entier sftp> get config.json # Télécharger un fichier depuis le serveur sftp> mkdir backup # Créer un dossier sur le serveur sftp> rm vieux-fichier.txt # Supprimer un fichier sur le serveur sftp> bye # Quitter

4. Transfert rapide avec SCP

Pour un transfert ponctuel sans session interactive, scp est plus direct. La syntaxe ressemble à cp mais avec une adresse distante.

bash
# Envoyer un fichier vers le serveur scp -P 2222 mon-fichier.html user@IP:/var/www/html/ # Envoyer un dossier entier (-r = récursif) scp -P 2222 -r ./mon-site/ user@IP:/var/www/ # Télécharger depuis le serveur scp -P 2222 user@IP:/etc/nginx/nginx.conf ./sauvegardes/ # Transférer entre deux serveurs distants scp -P 2222 user@IP1:/var/www/fichier.html user@IP2:/var/www/

5. Problème courant : les permissions

Après avoir uploadé des fichiers, ils peuvent ne pas être lisibles par le serveur web. C'est un problème de permissions - Linux contrôle qui peut lire, écrire ou exécuter chaque fichier.

bash
# Rendre un fichier lisible par tous (lecture) et éditable par le propriétaire chmod 644 /var/www/html/index.html # Rendre un dossier accessible (traversable) par tous chmod 755 /var/www/html/ # Changer le propriétaire d'un fichier vers www-data (utilisateur Nginx/Apache) chown www-data:www-data /var/www/html/ -R

Les chiffres 644 et 755 représentent les permissions en notation octale :

  • 6 = lecture + écriture (propriétaire)
  • 4 = lecture seulement (groupe et autres)
  • 7 = lecture + écriture + exécution (pour les dossiers, l'exécution = pouvoir entrer dedans)

SFTP, c'est tout ! Aucune configuration supplémentaire n'est nécessaire sur le serveur. Pour automatiser des synchronisations régulières (sauvegardes, déploiements), regardez du côté de rsync qui est bien plus efficace pour synchroniser des dossiers entiers.