Transférer des fichiers vers un VPS Linux avec FileZilla (SFTP)

4 min
Hébergement VPS/VDS

Le SFTP passe par votre connexion SSH existante : aucun logiciel serveur ni port supplémentaire n'est nécessaire. Sur un VPS Linux Infrawire, c'est la façon la plus sûre d'envoyer un site ou de récupérer des sauvegardes avec un client graphique comme FileZilla. Ce guide couvre la connexion par mot de passe et par clé, les permissions de fichiers et un utilisateur limité au SFTP.

📋 Prérequis

  • Un VPS Linux (Ubuntu 24.04, Debian 12, AlmaLinux 9 ou Rocky 9) avec SSH actif sur le port 22.
  • L'IP du VPS et le mot de passe root, disponibles dans votre espace client.
  • FileZilla Client installé sur votre ordinateur (le Client, pas FileZilla Server).

1. Se connecter rapidement avec un mot de passe

Pour un premier test, utilisez la barre de connexion rapide en haut de FileZilla :

  • Hôte : sftp://VPS_IP
  • Identifiant : USER
  • Mot de passe : votre mot de passe
  • Port : 22

Acceptez la clé de l'hôte la première fois. Le panneau de droite affiche l'arborescence du serveur. Préférez un utilisateur normal à root : une fausse manipulation fera moins de dégâts.

Bash
adduser USER usermod -aG sudo USER

Sur AlmaLinux ou Rocky, utilisez useradd -m USER, passwd USER et usermod -aG wheel USER.

2. Se connecter avec une clé SSH

Les clés sont plus sûres que les mots de passe et résistent à la force brute. Sur votre ordinateur, générez une paire de clés et copiez la partie publique sur le serveur.

Bash
ssh-keygen -t ed25519 -C "filezilla" ssh-copy-id USER@VPS_IP

Dans FileZilla, ouvrez Édition > Paramètres > Connexion > SFTP > Ajouter un fichier de clé et choisissez votre clé privée (le fichier sans .pub). FileZilla peut proposer de la convertir à son format : acceptez. Ne partagez jamais la clé privée.

3. Enregistrer la connexion dans le Gestionnaire de sites

  1. Ouvrez Fichier > Gestionnaire de sites et cliquez sur Nouveau site.
  2. Protocole : SFTP - SSH File Transfer Protocol.
  3. Hôte : VPS_IP, Port : 22.
  4. Type d'authentification : Normale pour un mot de passe, ou Fichier de clé pour une clé.
  5. Utilisateur : USER. Dans l'onglet Avancé, définissez le dossier distant par défaut, par exemple /var/www/example.com.
  6. Cliquez sur Connexion. Le site est mémorisé pour la prochaine fois.

Évitez d'enregistrer des mots de passe sur un ordinateur que vous ne maîtrisez pas.

4. Régler propriétaire et permissions des fichiers web

Les fichiers envoyés appartiennent souvent au mauvais utilisateur, ce qui provoque des erreurs 403 ou 500. Donnez le dossier web à votre utilisateur et laissez le serveur web le lire.

Bash
mkdir -p /var/www/example.com chown -R USER:www-data /var/www/example.com find /var/www/example.com -type d -exec chmod 755 {} \; find /var/www/example.com -type f -exec chmod 644 {} \;

Sur AlmaLinux et Rocky, le groupe du serveur web est apache au lieu de www-data. Les dossiers où l'application doit écrire (uploads, cache) peuvent passer en 775, avec le groupe du serveur web comme groupe propriétaire. N'utilisez jamais chmod -R 777. Dans FileZilla, vous pouvez aussi faire un clic droit sur un fichier puis Permissions du fichier.

5. Facultatif : un utilisateur SFTP seul, enfermé dans un dossier

Pour donner à un client l'accès à un seul dossier sans shell, utilisez un chroot. Le dossier chroot lui-même doit appartenir à root et ne pas être modifiable par un autre, sinon sshd refuse la connexion.

Bash
groupadd sftpusers useradd -M -d /files -s /usr/sbin/nologin -G sftpusers CLIENT passwd CLIENT mkdir -p /var/sftp/CLIENT/files chown root:root /var/sftp/CLIENT chmod 755 /var/sftp/CLIENT chown CLIENT:CLIENT /var/sftp/CLIENT/files

Ajoutez ce bloc à la fin de /etc/ssh/sshd_config :

INI
1Match Group sftpusers 2 ChrootDirectory /var/sftp/%u 3 ForceCommand internal-sftp 4 AllowTcpForwarding no 5 X11Forwarding no

Testez la syntaxe avant de recharger, et gardez votre session SSH ouverte jusqu'à ce qu'une nouvelle connexion fonctionne.

Bash
sshd -t systemctl reload ssh

Le service s'appelle ssh sur Ubuntu et Debian, et sshd sur AlmaLinux et Rocky. L'utilisateur restreint arrive dans /files et ne voit rien d'autre.

Vérification

Testez depuis un terminal avant d'incriminer FileZilla :

Bash
sftp USER@VPS_IP sftp> pwd sftp> put test.txt sftp> ls -l

Envoyez ensuite un fichier avec FileZilla et vérifiez son propriétaire avec ls -l /var/www/example.com.

Dépannage

  • Connexion refusée ou délai dépassé : vérifiez que sshd tourne (systemctl status ssh), que le port est ouvert dans le pare-feu et que vous avez bien choisi SFTP, pas FTP.
  • Permission denied (publickey) : la clé n'est pas dans ~/.ssh/authorized_keys ou les permissions sont mauvaises. Corrigez avec chmod 700 ~/.ssh et chmod 600 ~/.ssh/authorized_keys.
  • Utilisateur chrooté déconnecté juste après la connexion : le dossier chroot n'appartient pas à root ou est modifiable par le groupe. Cherchez « bad ownership or modes for chroot directory » dans journalctl -u ssh.
  • Envoi impossible, permission refusée sur un dossier : l'utilisateur ne possède pas la cible. Relancez les commandes chown et chmod de l'étape 4.

✅ Vous pouvez maintenant transférer vos fichiers en toute sécurité vers votre VPS Linux avec FileZilla.

Restez à jour avec les dernières offres, réductions et promotions spéciales.

Voir les promotions

Nous utilisons des cookies

Nous utilisons des cookies analytiques pour améliorer votre expérience sur notre site. Aucune donnée n'est revendue à des tiers. En savoir plus dans notre politique de confidentialité.