Chroot com conexões SSH não funciona

1

Eu encontrei Como posso chroot conexões ssh? e vários artigos de blogs diferentes e similares ( link , link , etc). Estou usando o subsistema interno sftp como descrito nos artigos.

Subsystem     sftp   internal-sftp

Match Group www-data
  ChrootDirectory %h
  AllowTcpForwarding no

Eu posso conectar e autenticar com o servidor, mas a sessão do SSH é fechada instantaneamente.

Aqui está uma parte do auth.log:

Feb 18 23:36:21 w sshd[358]: Accepted publickey for network from xxx port 50280 ssh2
Feb 18 23:36:21 w sshd[358]: debug1: monitor_read_log: child log fd closed
Feb 18 23:36:21 w sshd[358]: debug1: monitor_child_preauth: network has been authenticated by privileged process
Feb 18 23:36:21 w sshd[358]: debug1: PAM: establishing credentials
Feb 18 23:36:21 w sshd[358]: pam_unix(sshd:session): session opened for user network by (uid=0)
Feb 18 23:36:21 w sshd[358]: User child is on pid 363
Feb 18 23:36:21 w sshd[363]: debug1: SELinux support disabled
Feb 18 23:36:21 w sshd[363]: debug1: PAM: establishing credentials
Feb 18 23:36:21 w sshd[358]: debug1: session_new: session 0
Feb 18 23:36:21 w sshd[358]: debug1: SELinux support disabled
Feb 18 23:36:21 w sshd[358]: debug1: session_by_tty: session 0 tty /dev/pts/1
Feb 18 23:36:21 w sshd[358]: debug1: session_pty_cleanup: session 0 release /dev/pts/1
Feb 18 23:36:21 w sshd[358]: debug1: PAM: cleanup
Feb 18 23:36:21 w sshd[358]: debug1: PAM: closing session
Feb 18 23:36:21 w sshd[358]: pam_unix(sshd:session): session closed for user network
Feb 18 23:36:21 w sshd[358]: debug1: PAM: deleting credentials

O que está errado?

EDITAR:
Eu tenho a seguinte mensagem no lado do cliente:

/bin/bash: No such file or directory

Eu não entendo porque isso é um problema.
Eu pensei com a "nova" versão do OpenSSH que a parte da cópia já passou?

    
por CSchulz 18.02.2014 / 23:39

1 resposta

4

Parece que você está tentando colocar um shell interativo em uma chroot jail. O subsistema SFTP não tem nada a ver com isso porque você não está SFTP.

Você faz precisa preencher a cadeia com os arquivos necessários para permitir que o usuário execute um shell. Isso significa criar um diretório /bin relativo à raiz da cadeia e preenchê-lo com uma cópia de /bin/bash (entre outras coisas).

O utilitário Jailkit é capaz de criar automaticamente cadeias chroot e está sendo mantido ativamente. Você pode querer dar uma olhada lá.

Se você quiser fazer as coisas manualmente, dê uma olhada no seguinte (particularmente no primeiro, já que você está usando o Debian):

por 19.02.2014 / 00:13