Je veux configurer sftp-server pour partager un répertoire mais je ne sais pas comment le modifier /etc/ssh/sshd_config
.
Mes exigences sont:
1) La connexion ne doit pas utiliser de certificats, uniquement un mot de passe (c'est-à-dire que l'autorisation utilise la méthode du mot de passe)
2) Je veux me connecter avec l'utilisateur: ftp, mot de passe: foo et partager le répertoire / home / ftp.
3) J'ai une application qui a besoin de temps en temps de télécharger un fichier depuis le serveur, je n'ai pas besoin de me connecter avec un client pleinement opérationnel.
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 pour le moment.
Access fonctionne si j'essaie de télécharger un fichier en utilisant les informations d'identification root, mais cela ne fonctionne pas si j'utilise les 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'une temporisation 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 Match
ligne et les 2 suivantes).
ssh
, ou PuTTY sous Windows? Quelle version d'OpenSSH utilisez-vous?Réponses:
Vous devez vous assurer qu'il
/home/ftp
appartient àroot
ce groupe et à d'autres n'ont pas de droits d'écriture, par exemplechmod 0755
. Vous devez ajouter des sous-répertoires pourftp
ajouter des fichiers.Vous avez également besoin du
internal-sftp
sous - système, sinon vous devez fournir unchroot
environnement approprié dans/home/ftp
:Pour interdire tous les types de connexion sans mot de passe, entrez
Ceux-ci sont activés par défaut.
la source
/var/log/secure
, au moins c'est là que je l'obtiens sur mon système./var/log/messages
. J'ai ce qui suit:Failed none for ftp [...]
suivi deAccepted password for ftp [...]
etUser child is on pid 7658
. Le client raccroche puissshd_config
était très bien.