Não é possível chroot um usuário [duplicado]

0

Meu servidor ssh vem funcionando como um charme há 4 anos, então eu só quero adicionar um usuário + chroot ele a 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 faço isso, posso me conectar por meio de ssh e minha sftp de conexão funciona. O problema é que eu quero chroot para uma pasta específica.

> vim /etc/ssh/sshd_config

Adicione no final do arquivo:

Match user thomas
    ChrootDirectory /home/%u

Quando eu só adiciono isso, isso não deve mudar alguma coisa, certo? A configuração deve ser a mesma e eu ainda devo poder conectar ou usar o sftp ... então eu reinicio com service ssh restart e eu não consigo mais conectar com o sftp.

Apenas no caso:

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?

    
por Olivier Pons 09.04.2017 / 11:34

1 resposta

2

O manual sshd_config indica que

The ChrootDirectory must contain the necessary files and directories to support the user's session. For an interactive session this requires at least a shell, typically sh(1), and basic /dev nodes such as null(4), zero(4), stdin(4), stdout(4), stderr(4), and tty(4) devices. For file transfer sessions using SFTP no additional configuration of the environment is necessary if the in-process sftp-server is used, though sessions which use logging may require /dev/log inside the chroot directory on some operating systems (see sftp-server(8) for details).

Você deve criar o diretório dev e copiar o script /dev/MAKEDEV lá. Usando o script, crie os arquivos de dispositivos necessários.

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

A referência ao "servidor sftp em processo" significa que ForceCommand internal-sftp deve ser usado no bloco Match .

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

    
por 09.04.2017 / 12:05

Tags