chroot ssh usuários para o diretório inicial

2

Como um usuário pode chroot ssh para seus diretórios home?

Isto é o que eu configurei no meu arquivo sshd_config:

ChrootDirectory %h

Subsystem       sftp    /usr/libexec/openssh/sftp-server

a versão do ssh é 6.6.1

Este é o erro que recebo ao tentar efetuar login:

Could not chdir to home directory /home/user: No such file or directory

/bin/bash: no such file or directory
    
por Soban 01.06.2015 / 06:48

2 respostas

2

Se você quiser chroot seus usuários em seus diretórios, você precisa ter o shell & outras coisas que precisariam executar em seus diretórios. Qual é o seu erro dizendo. Chroot está mudando a raiz para / home / user e, em seguida, tenta encontrar / bin / bash (shell de escolha do usuário) em / home / user / bin / bash, fail & relata o erro.

    
por 01.06.2015 / 07:29
2

A primeira mensagem de erro ("Não foi possível chdir ...") é proveniente do ChrootDirectory no seu sshd_config . Da documentação:

ChrootDirectory

Specifies the pathname of a directory to chroot(2) to after authentication. All components of the pathname must be root-owned directories that are not writable by any other user or group. After the chroot, sshd(8) changes the working directory to the user's home directory.

Depois de tentar o chroot é quando ocorre o problema de não conseguir encontrar bash . Isso está relacionado a não ter toda a configuração do ambiente chroot (veja a documentação para chroot(2) ).

Se você quiser que o ambiente interativo do usuário seja chroot 'd (não apenas sftp ), você tem muito trabalho a fazer. Dependendo do seu objetivo final, você pode simplesmente usar um shell restrito (confira bash(1) e vim(1) e procure por "restricted" para encontrar algumas idéias de como configurar as coisas).

Encontrei algumas outras referências a perguntas semelhantes em askubuntu.com e em archlinux.org (não se esqueça de ir até o final do segundo para uma descrição de porque o diretório deve ser propriedade da raiz).

    
por 01.06.2015 / 07:48