Nas suas anotações do auth.log, parece que esse é um problema de permissão. Especificamente, a linha de registro que diz
21:10:18 localhost sshd[16609]: fatal: bad ownership or modes for chroot directory component "/srv/"
Se você deixar sua linha sshd_config
lendo ChrootDirectory /srv/jarvis/carl
, como é atualmente, todos os diretórios neste caminho precisarão ter as seguintes características:
- Precisa ser de propriedade do usuário raiz (o grupo não é importante)
- Não pode ser grupo ou mundo gravável (ou seja, seria necessário
chmod 755
)
Novamente, isso se aplica a /srv
, /srv/jarvis
e /srv/jarvis/carl
. Infelizmente, o resultado disso é que esse usuário carl
não poderá gravar em seu diretório de nível superior (depois que o chroot entrar em vigor). Uma maneira de contornar isso é preparar um subdiretório e dar a ele a propriedade dele, então ele tem algum lugar para criar arquivos e pastas.
Eu mesmo não testei, mas algumas discussões sobre esse tópico na Web levaram-me a acreditar que, se você alterasse sua diretiva ChrootDirectory
para ler:
ChrootDirectory /srv/jarvis/%u
(que, no seu caso, sempre significará /srv/jarvis/carl
, já que ele é o único que corresponderia), sshd
pode tratar a pasta correspondente com curinga de maneira diferente. Você pode se safar com o usuário carl possuindo a pasta carl
desta maneira. Mais uma vez, sem garantias. Caso contrário, o primeiro método descrito deve funcionar.