Devblog

Mes notes de développeur

J'ai eu besoin d'un accès SFTP « sécurisé » et surtout limité pour un utilisateur précis sur un de mes serveurs.

Voici comment je m'y suis pris au final après pas mal de tatonnements et d'erreurs.

Ajouter ceci à la fin de /etc/ssh/sshd_config :

# Subsystem sftp internal-sftp
Subsystem sftp internal-sftp -f AUTH -l VERBOSE

# This section must be placed at the very end of sshd_config
# Match Group sftponly
Match User tartenpion
ChrootDirectory %h
ForceCommand internal-sftp
# ForceCommand /usr/lib/openssh/sftp-server
# For additional paranoia, disallow all types of port forwardings.
AllowTcpForwarding no
GatewayPorts no
X11Forwarding no

Redémarrer SSH avec sudo service ssh restart par exemple

Il faut que /home et /home/tartenpion soit à root en mode 755. Donc :

sudo chown root /home
sudo chown root /home/tartenpion
sudo chmod 755 /home
sudo chmod 755 /home/tartenpion

Par sécurité, on peut faire usermod tartenpion -s /bin/false afin que tartenpion ne puisse qu'utiliser SFTP et pas SSH.

Merci à partofthething pour la réponse au problème de droit que j'avais sur ma Debian 8 (la ligne Subsystem sftp internal-sftp -f AUTH -l VERBOSE au lieu de Subsystem sftp internal-sftp (qu'on voit partout) ou de Subsystem sftp /usr/lib/openssh/sftp-server (que j'avais essayé et qui fonctionnait… presque)