Estou executando o Debian stable e estou procurando estabelecer o seguinte ambiente para usuários no meu grupo 'sftponly':
- preso
- pode transferir com SFTP
- pode transferir com SCP
- Não é possível fazer login interativamente com o SSH
De minhas experiências e pesquisas, parece que a seguinte estrofe no sshd_config me leva a 90%:
Match group sftponly
ChrootDirectory /sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Isso me dá SFTP preso e nenhum SSH, o que é bom. Mas também desabilita o SCP, que é menos do que o ideal, porque alguns clientes são processos herdados e com script que usam o SCP em vez do SFTP (o servidor que estamos substituindo suporta os dois protocolos) e, como esses clientes não estão sob nosso controle e são fáceis modificado, provavelmente não é prático desativar completamente o SCP.
Faz sentido que essa configuração desative o SCP, pois as conexões SCP recebidas fazem com que o sshd gere um processo `scp 'através do shell de login do usuário, como esse usuário. Parece que o mesmo normalmente seria verdade para o SFTP, não fosse o manipulador especial 'internal-sftp'.
Então, suponho que minha pergunta é: existe uma maneira de obter o mesmo efeito que 'internal-sftp', mas para o SCP, sem recorrer ao uso de ferramentas de terceiros como scponly e rssh? O mais interessante do 'internal-sftp' é que ele não requer a criação de uma prisão com arquivos de suporte ou o tratamento de binários setuid de terceiros potencialmente exploráveis (o rssh, em particular, tem um histórico de explorações).