O sftp-server é um binário externo. Provavelmente não está dentro do seu ambiente chroot.
Se você modificar o sshd_config para usar o subsistema interno (se disponível), ele deverá começar a trabalhar com o chroot.
Estou tentando configurar o sftp-server, mas o cliente está recebendo um erro, Connection closed by server with exitcode 1
/var/log/auth.log (abaixo) não ajuda muito, como posso descobrir qual é o erro?
Estou executando o Ubuntu 10.04.1 LTS
sshd[27236]: Accepted password for theuser from (my ip) port 13547 ssh2
sshd[27236]: pam_unix(sshd:session): session opened for user theuser by (uid=0)
sshd[27300]: subsystem request for sftp
sshd[27236]: pam_unix(sshd:session): session closed for user theuser
Update: Eu tenho insistido nisso por um tempo agora, eu tenho o comando sftp em outro servidor me dando um erro mais útil.
Request for subsystem 'sftp' failed on channel 0
Couldn't read packet: Connection reset by peer
Tudo o que encontrei na net sugere que esse id seja um problema com o sftp-server, mas quando eu removo o chroot da configuração do sshd, posso acessar o sistema. Eu suponho que isso significa que o sftp-server está acessível e configurado corretamente.
Eu tive exatamente o mesmo problema. Assim como o MikeyB sugere, você provavelmente precisa mudar o subsistema para o interno-sftp. Eu mudei o seguinte no sshd_config:
Subsystem sftp /usr/lib/openssh/sftp-server
Para
Subsystem sftp internal-sftp
Você também precisa alterar o valor de ForceCommand na estrofe Match para algo como isto:
Match User john-doe
ChrootDirectory %h
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
Pelo menos que funcionou para mim, espero que isso ajude alguém.
Só tive isso eu mesmo.
O usuário simplesmente precisava ter permissões SSH.
Tags ssh sftp ubuntu-10.04