Defina o shell dos usuários como rssh . A partir do manpage:
rssh - restricted secure shell allowing only scp and/or sftp
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.
Defina o shell dos usuários como rssh . A partir do manpage:
rssh - restricted secure shell allowing only scp and/or sftp
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.
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