Configure a conta do usuário sftp e restrinja o acesso de leitura / gravação a uma pasta

0

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?

    
por Primoz Rome 29.08.2017 / 17:13

1 resposta

0

Eu acho que há um erro sobre os direitos ...

Você poderia nos mostrar o retorno do comando ls -l no seu diretório /var/sftp por favor?

Acho que /var/sftp tem 755 direitos, mas não /var/sftp/uploads , porque o comando chmod não é recursivo se não o dissermos, por isso você teria que digitar: sudo chmod 755 -R /var/sftp (o parâmetro -R para recursivo). Com -R , todos os subdiretórios em /var/sftp terão 755 direitos.

Poderia tentar por favor?

Boa sorte!

    
por TheVincent 29.08.2017 / 20:23