Esse artigo também descreve como obter um acesso ao shell chrooted, mas como você quer apenas uma conta somente do sftp, siga estas instruções:
Edite /etc/ssh/sshd_config
e adicione as linhas:
SubSystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Encontre a linha UsePAM yes
e comente:
#UsePAM yes
Sem desabilitar isso, meu servidor SSH falharia ao recarregar / reiniciar. Como não preciso de funções sofisticadas do PAM, tudo bem.
Para segurança extra, restrinja os usuários que podem fazer login. Se você esquecer de adicionar usuários do SFTP ao grupo sftp
, conceda a eles acesso gratuito ao shell. Não é um cenário legal. Como o SSH não pode combinar AllowUsers
e AllowGroups
(um login precisa cumprir ambas as regras), você precisa criar um grupo adicional, digamos ssh-users
. Adicione os usuários com permissão para efetuar login ( youruser
abaixo) sobre SSH:
sudo groupadd ssh-users
sudo gpasswd -a youruser ssh-users
Adicione a próxima linha a /etc/ssh/sshd_config
:
AllowGroups ssh-users sftp
Continue com a modificação das permissões do diretório pessoal dos usuários para permitir o uso de chrooting (exemplo user sftp-user
):
sudo chown root:sftp-user /home/sftp-user
sudo chmod 750 /home/sftp-user
Crie um diretório no qual sftp-user
esteja livre para colocar qualquer arquivo:
sudo mkdir /home/sftp-user/public
sudo chown sftp-user: /home/sftp-user/public
sudo chmod 750 /home/sftp-user/public
Se você tiver problemas, verifique /var/log/syslog
e /var/log/auth.log
para obter detalhes. Execute ssh
ou sftp
com a opção -vvv
para mensagens de depuração. Para sftp
, a opção deve aparecer antes do host, como em sftp -vvv user@host
.