
Estou tentando configurar um usuário com acesso SFTP e acesso SSH limitado. Portanto, fiz o chroot do usuário e configurei-o basicamente exatamente como especificado emeste tutorial. No entanto, embora eu consiga fazer o ssh no servidor com êxito, quando tento me conectar por meio de uma conexão SFTP, ele simplesmente diz Falha na conexão.
Pesquisa e tentativas de correção
Tentei procurar por qualquer coisa que possa explicar como fazer isso, mas só consegui encontrarEste tópicoque não teve nenhuma resposta. Além disso, não encontrei nenhum artigo online que mostrasse como isso poderia ser feito.
Também tentei copiar a pasta /bin
inteira /lib
para o diretório chroot para garantir que não houvesse nenhum comando ausente que pudesse estar causando a falha. A análise /var/log/auth.log
não produziu resultados, inclusive porque o único log foi que a conexão foi fechada pelo usuário, inclusive quando eu LogLevel Debug2
entrei /etc/ssh/sshd_config
. A tentativa de conexão usando uma conexão SCP no WinSCP me permite ver os arquivos, mas não consigo copiar nada para minha unidade local ou vice-versa
Arquivo de configuração SSHD (seção relevante):
Match User test_user
ChrootDirectory /home/test_user
Responder1
Eventualmente, encontrei a jailkit
ferramenta projetada para automatizar o encarceramento de usuários, em vez de fazê-lo manualmente, o que originalmente estava tentando fazer.
Para configurar o diretório chroot, usei as seguintes etapas
Instalação (no Ubuntu) A instalação da fonte pode ser encontradaaqui
sudo apt install jailkit
Configuração de diretório
Uma lista de vários pacotes aos quais permitir acesso pode ser encontrada em /etc/jailkit/jk_init.ini
. Eu também instalei o git dessa maneira depois de configurá-lo
sudo chown root:root /srv/test_user
sudo jk_init -v /srv/test_user netutils basicshell jk_lsh openvpn ssh sftp
Formato geral abaixo
sudo chown root:root <chroot_directory>
sudo jk_init -v <chroot_directory> <packages>
Prender o usuário
sudo jk_jailuser -m -j /srv/test_user test_user
Mudando de casca
Finalmente, o shell especificado em <chroot_directory>/etc/passwd
deve ser alterado de /usr/sbin/jk_lsh
para /bin/bash
. Observe que deve haver apenas as entradas para test_user, root e possivelmente outro login
A partir daí, você pode fazer login via ssh ou sftp/scp e acessar tudo conforme o esperado. Observe que para fazer login via chave pública, você precisará configurar o ~/.ssh/authorized_keys
arquivo