fazer servidor linux permitir rsync / scp / sftp mas não um login de terminal

4

Eu gostaria de configurar uma caixa linux (provavelmente um servidor Ubuntu) para que eu possa configurar usuários, para que seja possível fazer upload / download de arquivos via rsync / scp / sftp, mas não deve ser possível fazer o ssh para a máquina e obter um terminal interativo.

Isso é possível? Como eu iria configurar isso? Eu sei que tudo o que eu preciso é que o servidor ssh esteja ON, para o rsync / scp / sftp funcionar, mas eu acho que deveria haver uma maneira de evitar o login direto.

    
por Eldamir 05.09.2013 / 11:24

3 respostas

5

Defina o shell dos usuários como rssh . A partir do manpage:

rssh - restricted secure shell allowing only scp and/or sftp

    
por 05.09.2013 / 18:43
1

Você pode usar um pseudo-shell como scponly e definir isso para os usuários que você não deseja fazer login diretamente .

Outra forma possível é definir o comando de login no arquivo de chaves autorizadas, mas isso só funciona se os usuários fizerem login via chaves SSH e não por senha.

    
por 05.09.2013 / 11:34
1

Se você só precisa permitir o rsync, os desenvolvedores do rsync fornecem o script rrsync para resolver o seu problema. Está disponível aqui: link

Você só precisa adicionar algo assim ao seu arquivo .authorized_keys (esse exemplo permite acesso somente de leitura ( -ro ) a /some/directory/ :

command="/path/to/rrsync -ro /some/directory/",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa AAA...

Mais informações e exemplos estão disponíveis aqui: link

    
por 27.10.2017 / 11:33