Eu gostaria de criar uma conta de usuário sftp
no servidor Ubuntu que tenha acesso de leitura / gravação somente para uma pasta específica. Eu gostaria que este usuário tivesse direitos para transferir arquivos para cima e do meu servidor via sftp
. Meu servidor está hospedado no Digital Ocean.
Eu segui este tutorial no Oceano Digital, que parece fazer exatamente o que eu quero, mas fiquei preso em Step 4
.
O passo 4 diz que você tenta este comando:
ssh sammyfiles@localhost
E o resultado deve ser:
Error message
This service allows sftp connections only.
Connection to localhost closed.
Em vez disso, meu resultado é:
packet_write_wait: Connection to 207.154.238.143 port 22: Broken pipe
Connection closed
Em seguida, ele instrui a execução disso, o que obviamente deve funcionar:
sftp sammyfiles@localhost
O resultado deve ser:
SFTP prompt
Connected to localhost.
sftp>
mas em vez disso eu obtenho:
forge@BitCloud:~$ sftp misjah@localhost
misjah@localhost's password:
packet_write_wait: Connection to 127.0.0.1 port 22: Broken pipe
Couldn't read packet: Connection reset by peer
Eu recebo a mesma mensagem se eu quiser sftp
com esse usuário recém-criado de fora:
prmbair:~ primozrome$ sftp [email protected]
[email protected]'s password:
packet_write_wait: Connection to 207.154.238.143 port 22: Broken pipe
Connection closed
prmbair:~ primozrome$
O que estou fazendo de errado?
Atualização dos comentários:
Parece que o problema está na linha sshd_config
- ChrootDirectory
. Se eu usar ChrootDirectory %h
, então o sftp para o diretório home dos usuários funciona, mas se eu usar ChrootDirectory /home/user/uploads
(para restringir somente a uma pasta), então:
packet_write_wait: Connection to 127.0.0.1 port 22: Broken pipe.
Couldn't read packet: Connection reset by peer.
Alguma ideia?