Comment puis-je configurer le serveur OpenSSH SFTP sur Linux ?

Je veux configurer sftp-server pour partager un répertoire mais je ne sais pas comment modifier /etc/ssh/sshd_config.

Mes exigences sont:

1) La connexion ne doit pas utiliser de certificats, seulement un mot de passe (c'est-à-dire que l'autorisation utilise la méthode du mot de passe)

2) Je veux me connecter avec user: ftp, password: foo et partager le répertoire /home/ftp.

3) J'ai une application qui doit de temps en temps télécharger un fichier à partir du serveur, je n'ai pas besoin de me connecter avec un fonctionnement complet client.

Jusqu'à présent, j'ai ajouté les lignes suivantes à /etc/ssh/sshd_config:

Protocol 2
Subsystem sftp /usr/libexec/sftp-server
Match User ftp
   ForceCommand internal-sftp
   ChrootDirectory /home/ftp

Tout le reste est commenté.

/home/ftp est un répertoire vide à l'heure actuelle.

L'accès fonctionne si j'essaie de télécharger un fichier à l'aide des informations d'identification root, mais cela ne fonctionne pas si j'utilise des informations d'identification ftp. Dois-je définir un shell de connexion ? Dois-je remplir /home/ftp d'une manière ou d'une autre?

EDIT: Ceci est mon journal sshd:

subsystem request for sftp
debug1: subsystem: exec() internal-sftp
debug1: Forced command (config) 'internal-sftp '
debug2: fd 3 setting TCP_NODELAY
debug2: fd 9 setting O_NONBLOCK
debug2: fd 8 setting O_NONBLOCK
debug1: Received SIGCHLD.
debug1: session_by_pid: pid 17613
debug1: session_exit_message: session 0 channel 0 pid 17613
debug2: channel 0: request exit-status confirm 0
debug1: session_exit_message: release channel 0
debug2: channel 0: write failed
debug2: channel 0: close_write
debug2: channel 0: send eow
debug2: channel 0: output open -> closed
debug2: channel 0: read<=0 rfd 9 len 0
debug2: channel 0: read failed
debug2: channel 0: close_read
debug2: channel 0: input open -> drain
debug2: channel 0: ibuf empty
debug2: channel 0: send eof
debug2: channel 0: input drain -> closed
debug2: channel 0: send close
debug2: notify_done: reading
debug3: channel 0: will not send data after close
debug3: channel 0: will not send data after close
User child is on pid 17611
debug3: mm_request_receive entering

* Le client se bloque ici (jusqu'à ce qu'un délai d'expiration se produise) *

Veuillez noter, encore une fois, que si je me connecte en tant que "root", le fichier se télécharge correctement. Il se télécharge également correctement si je commente les trois dernières lignes du fichier de configuration (c'est-à-dire la ligne Match et les 2 suivantes).

demandé sur