Chroot usuário ssh para pasta inicial resulta em conexão recusada

Chroot usuário ssh para pasta inicial resulta em conexão recusada

Estou tentando dar a alguém acesso ssh a um servidor (Ubuntu 14.04) que possuo, mas quero limitá-lo à sua própria pasta pessoal. Então estou tentando seguireste tutorial.

Primeiro criei um usuário ( sudo adduser jailuser) que possibilitou o login usando jailuser. Em seguida, tentando prender o usuário, adicionei o seguinte /etc/ssh/sshd_config(e reiniciei o ssh):

Subsystem     sftp   internal-sftp
Match Group sftp
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no

Eu então criei o grupo sftp:

sudo groupadd sftp

e executei os seguintes comandos para alterar o jailuser:

sudo usermod -G sftp jailuser
sudo usermod -s /bin/false jailuser
sudo chown root:root /home/jailuser
sudo chmod 0755 /home/jailuser

O resultado é que não consigo mais fazer login: ssh: connect to host xx.xxx.xx.223 port 22: Connection refused.

Como sou meio novato em gerenciamento de servidores, estou perdido aqui. Alguém sabe o que estou fazendo de errado? Todas as dicas/truques são bem-vindos!

Responder1

Eu tive esse problema e a correção foi colocar "UsePAM yes" acima da sub-rotina "Subsystem sftp internal-sftp". Reinicie o ssh e funcionou perfeitamente.

Responder2

Não vejo nada obviamente errado com as sshd_configlinhas que você postou. Parece que existem três possibilidades aqui:

  1. Nada está realmente errado, mas sshdprecisa ser iniciado.
  2. sshdé capaz de ser executado, mas não está escutando no endereço IP ou na porta correta.
  3. Algo está impedindo sshdde iniciar.

Para todos os itens a seguir, você teria que estar rootno host do servidor ssh.

Para (1), execute algo como "ps -fe | grep sshd" para ver se sshdestá rodando ou não. Caso contrário, tente iniciar o servidor ssh. No Ubuntu, você executaria isto:

/etc/init.d/ssh restart

Se sshdestiver em execução, vá para (2). Verifique sshd_configoOuvirEndereçoouPortadiretivas. Eles controlam em qual endereço IP e porta o servidor escutará as conexões. Na maioria dos casos, você os deixaria comentados (para usar os valores padrão) ou os definiria como 0.0.0.0 e 22, respectivamente.

Se você tentou iniciar sshde ele não foi executado, comece verificando os arquivos de log em /var/logbusca de mensagens do sshd. Eles podem indicar qual problema está ocorrendo. Se isso não der certo, você pode executar sshdinterativamente com depuração:

/usr/sbin/sshd -ddd            # Listen on the default port 22
/usr/sbin/sshd -ddd -p 1022    # Listen on port 1022

sshdpermanecerá conectado ao seu terminal e imprimirá um monte de informações de depuração. Se não puder continuar funcionando por algum motivo, ele deverá lhe dizer o porquê.

informação relacionada