Não é possível fazer chroot em um usuário

Não é possível fazer chroot em um usuário

Meu servidor ssh está funcionando perfeitamente há 4 anos, então eu só quero adicionar um usuário + chroot ele em uma pasta específica.

> useradd -m -c /home/thomas -s /bin/sh thomas
> passwd thomas
> chmod 755 /home/thomas
> chown root: /home/thomas
> service ssh restart

Quando eu faço isso, eupodeconecte-se sshe minha sftpconexão funciona. O problema é que quero fazer chroot para uma pasta específica.

> vim /etc/ssh/sshd_config

Adicione no final do arquivo:

Match user thomas
    ChrootDirectory /home/%u

Quando eu apenas adiciono isso, isso não deve mudar nada, certo? A configuração deve ser a mesma e ainda devo conseguir me conectar ou usar o sftp... então reinicio com service ssh restarte não consigo mais me conectar com o sftp.

Apenas no caso de:

root@xx:/etc/nginx/sites-enabled# /usr/sbin/sshd -v
sshd: illegal option -- v
OpenSSH_6.0p1 Debian-4+deb7u6, OpenSSL 1.0.1t  3 May 2016
usage: sshd [-46DdeiqTt] [-b bits] [-C connection_spec] [-c host_cert_file]
            [-f config_file] [-g login_grace_time] [-h host_key_file]
            [-k key_gen_time] [-o option] [-p port] [-u len]
root@xx:/etc/nginx/sites-enabled#

O que estou fazendo de errado?

Responder1

O sshd_configmanual afirma que

Deve ChrootDirectoryconter os arquivos e diretórios necessários para suportar a sessão do usuário. Para uma sessão interativa , isso requer pelo menos um shell, normalmente sh(1), e nós básicos , como /dev,,,,, null(4)e dispositivos . Para sessões de transferência de arquivos usando SFTP, nenhuma configuração adicional do ambiente é necessária se o servidor sftp em processo for usado, embora sessões que usam log possam exigir dentro do diretório chroot em alguns sistemas operacionais (veja para detalhes).zero(4)stdin(4)stdout(4)stderr(4)tty(4)/dev/logsftp-server(8)

Você deve criar o devdiretório e copiar o /dev/MAKEDEVscript lá. Usando o script, crie os arquivos de dispositivo necessários.

Para usuários interativos, você também precisa instalar os binários necessários e bibliotecas associadas no chroot.

A referência ao "servidor sftp em processo" significa ForceCommand internal-sftpque deve ser usada em seu Matchbloco.

Nota: o trecho é do OpenSSH 7.5, pois não tenho acesso a nenhuma implementação SSH mais antiga.

informação relacionada