Table des matières

Mise en place d'un serveur SFTP

Un accès SFTP est un moyen simple pour un utilisateur de rappatrier et envoyer des fichiers sur un serveur, au moyen d'un client SFTP tel que Filezilla.

Un serveur SFTP est en fait un sous-ensemble de SSH.

Configuration openssh

ssh est un outil formidable :

Histoires de droits d'utilisateurs

Si l'on donne accès SSH à des utilisateurs, on préfererait qu'ils ne soient pas trop curieux ou n'aient pas trop de possibilités de nuire au serveur.

Il existe des solutions de chroot et de jail, mais leur mise en oeuvre est assez rebutante.

On peut aussi restreindre simplement l'accès SSH à du sftp-only dans la config d'openssh, mais on perd alors la possibilité d'utiliser le shell.

Limiter les accès aux répertoires

Si c'est le fait que la personne puisse se balader dans l'arborescence qui dérange. Sans avoir recours à un chroot, on peut procéder ainsi :

Faciliter l'accès à un répertoire

Lorsqu'on se connecte via sftp, on arrive dans son $HOME.

Si les fichiers qui nous intéressent sont déjà dans notre $HOME, tout va bien.

S'ils sont situés ailleurs, par exemple sur une autre partition, alors le réflexe pourrait être d'utiliser un lien symbolique, mais abstenez-vous : lorsque la personne circulera au sein de ces répertoires, elle ne retrouvera pas son $HOME lorsqu'elle revient en arrière.

La solution est plutôt de faire un montage de type bind.

/etc/fstab
/mnt/local/tresor/ /home/bichounet/macaverne    none    defaults,bind   0 0

Accès au SFTP avec Filezilla et authentification par clé SSH

On peut utiliser Filezilla pour se connecter à un serveur SFTP/SSH. Une autre solution serait d'utiliser sshfs (FUSE), que je trouve d'ailleurs plus pratique, mais que je trouve moins réactive que la solution qui suit sur des connexions à faible débit. Filezilla a aussi l'avantage de tourner aussi sous Windows, ce qui n'est pas le cas de sshfs.

On peut utiliser un mot de passe pour l'authentification, ou bien sa clé SSH, c'est ce que l'on verra ci-dessous.

Indiquer la clé privée SSH à Filezilla

Filezilla a besoin de connaître le chemin de votre clé privée SSH (généralement ~/.ssh/id_rsa). Elle se renseigne dans le menu Edition > Paramètres > SFTP. Ajoutez votre clé privée, elle devrait apparaître parmi le lot de clés disponibles pour Filezilla.

Ajouter le serveur au Gestionnaire de Sites

Dans le «Gestionnaire de sites» de Filezilla, vous ajouterez les coordonnées du serveur, et choisirez une connexion “Normale”, en indiquant l'identifiant.

S'assurer qu'un agent ssh tourne en parallèle de Filezilla

En plus de cela, vous devrez avoir un agent SSH qui tourne sur votre machine. Il ne suffit pas de lancer l'agent SSH, il faut que votre shell intègre et exporte un certain nombre de variables.

Avec bash, cela se fait bien avec :

eval $(ssh-agent -s)

Conclusion

Cela étant fait, vous pouvez lancer Filezilla, et tenter la connexion.

Si la description ci-dessus ne colle pas avec votre situation, vous pouvez aussi consulter cette page du wiki Filezilla qui traite de la question : https://wiki.filezilla-project.org/Howto

Liens