Estou usando o rssh para essa finalidade.
Você está certo, há uma nova maneira de fazer isso e é um recurso interno das versões recentes do ssh.
Aqui está um artigo sobre Undeadly .
Eu gostaria de configurar um chroot jail para a maioria dos usuários (não todos) que fazem login através do SSH. Eu ouvi que é possível com as versões mais recentes do openssh, mas não consegui descobrir como fazê-lo. Os How To falam de remendar uma versão antiga e o patch não está mais disponível.
Estou usando o debian etch.
Estou usando o rssh para essa finalidade.
Você está certo, há uma nova maneira de fazer isso e é um recurso interno das versões recentes do ssh.
Aqui está um artigo sobre Undeadly .
Eu só tive que configurar um usuário que seria capaz de logar via ssh e o ssh para outro servidor (que não está diretamente conectado ao mundo externo). Os links de cstamas e ericmayo foram um bom começo.
Basicamente, adicionei o seguinte ao / etc / ssh / sshd_config:
Match User myuser ChrootDirectory /chroot/myuser
A partir daí, eu só tive que criar o ambiente chroot abaixo de / chroot / myuser. Eu copiei / bin / bash e / usr / bin / ssh e as bibliotecas compartilhadas de que precisavam (o ldd mostrará essas). Para um ambiente maior, provavelmente faria sentido compilar versões estaticamente vinculadas dos executáveis necessários.
Bash funcionou imediatamente, para o ssh funcionar, eu também tive que criar o diretório .ssh, copiar / etc / passwd, /etc/nsswitch.conf e / lib / libnss_ * e criar / dev / null, / dev / tty e / dev / urandom via mknod.
mkdir /chroot
mkdir -p /chroot/home/<user_name>
mkdir /chroot/home/<user-name>/bin
cp -pr /bin/bash /chroot/home/<user_name>/bin/.
cp -pr /bin/ls /chroot/home/<user_name>/bin/.
cp -pr /lib64 /chroot/home/<user_name>/.
Você tem que editar o arquivo / etc / sshd_config e addd
ChrootDirectory /chroot/%h
E reinicie o daemon sshd.
Tudo dito, eu sinceramente acho que o sftp é uma opção melhor.
Além disso, encontrei este URL se for útil.
Se você estiver usando a autenticação de chave pública, poderá usar a opção "command" em chaves autorizadas para configurar a cadeia chroot.
~ / .ssh / authorized_keys:
command="/path/to/the/chroot/script" ssh-dss keydata.....keydata... user@host
Até onde eu sei, novas versões do OpenSSH só permitem chroot para conexões SFTP. Eu tentei e funciona. Mas para o SSH, a solução disponível é o patch chrootssh. Eu navego no site SourceForge e não há arquivos, então acho que é descontinuado.
Para o Debian Etch existem alguns arquivos aqui: link
Existem outras soluções aqui: link , incluindo chrootssh.