Como posso configurar o servidor SFSS openSSH no Linux?

9

Eu quero configurar o sftp-server para compartilhar um diretório, mas não sei como modificar o /etc/ssh/sshd_config .

Meus requisitos são:

1) O login não deve usar certificados, apenas a senha (ou seja, a autorização usa o método de senha)

2) Eu quero fazer o login com o usuário: ftp, senha: foo e compartilhar 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

Tudo é comentado.

/home/ftp é um diretório vazio no momento atual.

O acesso funciona se eu tentar baixar um arquivo usando credenciais raiz, mas não funciona se eu usar credenciais de ftp. Preciso definir um shell de login? Preciso preencher o / 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) *

Por favor, note que, se eu fizer o login como "root", o arquivo é baixado corretamente. Ele também faz o download corretamente se eu comentar as três últimas linhas do arquivo de configuração (ou seja, a linha Match e as 2 seguintes).

    
por Emiliano 30.09.2011 / 18:00

1 resposta

8

Você precisa garantir que /home/ftp seja de propriedade de root e que esse grupo e outros não tenham permissões de gravação, por exemplo, %código%. Você precisa adicionar subdiretórios para chmod 0755 para adicionar arquivos.

Você também precisa do subsistema ftp , caso contrário, será necessário fornecer um ambiente internal-sftp adequado em chroot :

Subsystem sftp internal-sftp

Para não permitir todos os tipos de login que não sejam de senha, digite

ChallengeResponseAuthentication no
GSSAPIAuthentication no
PubkeyAuthentication no

Estes são ativados por padrão.

    
por 30.09.2011 / 18:32