Quero configurar o servidor sftp para compartilhar um diretório, mas não sei como modificar /etc/ssh/sshd_config
.
Meus requisitos são:
1) O login não deve usar certificados, apenas senha (ou seja, a autorização usa o método de senha)
2) Quero fazer login com o usuário: ftp, senha: foo e compartilhar o diretório / home / ftp.
3) Eu tenho um aplicativo que, de tempos em tempos, precisa baixar um arquivo do servidor, não preciso fazer login com um cliente operacional completo.
Até agora, adicionei as seguintes linhas ao / etc / ssh / sshd_config:
Protocol 2
Subsystem sftp /usr/libexec/sftp-server
Match User ftp
ForceCommand internal-sftp
ChrootDirectory /home/ftp
Todo o resto é comentado.
/home/ftp
é um diretório vazio no momento.
O acesso funcionará se eu tentar baixar um arquivo usando credenciais raiz, mas não funcionará se eu usar credenciais ftp. Preciso definir um shell de login? Preciso preencher / home / ftp de alguma forma?
EDIT: Este é o meu log 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
* O cliente trava aqui (até ocorrer um tempo limite) *
Observe novamente que, se eu entrar como "root", o arquivo será baixado corretamente. Ele também é baixado corretamente se eu comentar as três últimas linhas do arquivo de configuração (ou seja, a Match
linha e as 2 seguintes).
ssh
, ou PuTTY no Windows? Qual versão do OpenSSH você está usando?Respostas:
Você precisa se certificar de que
/home/ftp
pertenceroot
e se esse grupo e outros não têm permissões de gravação, por exemplochmod 0755
. Você precisa adicionar subdiretóriosftp
para adicionar arquivos.Você também precisa do
internal-sftp
subsistema, caso contrário, precisará fornecer umchroot
ambiente adequado em/home/ftp
:Para proibir todos os tipos de login sem senha, digite
Estes são ativados por padrão.
fonte
/var/log/secure
, pelo menos é onde eu a recebo no meu sistema./var/log/messages
. Eu tenho o seguinte:Failed none for ftp [...]
seguido porAccepted password for ftp [...]
eUser child is on pid 7658
. O cliente trava e depoissshd_config
estava bem.