para a parte sftp você pode ver as diretivas Subsistema sftp internal-sftp juntamente com o ChrootDirectory no sshd_config.
Eu quero configurar um servidor de armazenamento público que permita sftp
e rsync
(através de ssh). Eu trabalhei com chroot
jail e rssh
. Quando o usuário se conecta ao servidor com sftp
, ele pode ler todos os arquivos na jaula chroot (como / lib e / bin) no chroot
. Da mesma forma com rsync
( rsync --list-only user@server:/
). Eu gostaria de ter uma configuração onde o usuário só pode ver e não deixar o seu diretório home.
Um requisito adicional é que eu não quero configurar um ambiente chroot para cada usuário.
Eu já tentei as instruções chrootdirectory e forcecommand em sshd_config
, o que funciona muito bem para sftp
, mas não permite rsync
.
para a parte sftp você pode ver as diretivas Subsistema sftp internal-sftp juntamente com o ChrootDirectory no sshd_config.
Você tentou configurar comandos nas chaves aceitas, conforme proposto em tentando configurar o chroot'd rsync ?
Trecho:
Granting ssh access does not necessarily imply full shell access, for example, this shows how to use the ssh authorized_keys file to allow backup via rsync while limiting available commands to just the rsync receiver.
Something like this, in your authorized_keys file:
command="/usr/bin/rsync --server -a . /tmp/user1" ssh-rsa ... user1 command="/usr/bin/rsync --server -a . /tmp/user2" ssh-rsa ... user2
Há também ponteiros para dois artigos do blog. O primeiro explica como restringir o ssh ao rsync:
O segundo que você não quer, configurando um ambiente chroot.
Pessoalmente eu iria para o chroot e definindo $USER/{bin|lib}
como montagens de bind. Desta forma, eu manteria um único ambiente chroot montado no chroot de cada usuário.