Soluzione 1:
A partire dalla versione 4.9 OpenSSH (non disponibile in centos 5.x ma la funzione ChrootDirectory è stata sottoposta a backport) ha un internal-sftp
sottosistema:
Subsystem sftp internal-sftp
E poi blocca altri usi:
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Aggiungi i tuoi utenti al sftponly
gruppo. Devi cambiare la directory home dell'utente in /
a causa del chroot e del /home/user
dovrebbe essere di proprietà di root
. Imposterei anche /bin/false
come shell dell'utente.
Soluzione 2:
C'è una shell scponly cosa fa questo. Può chroot anche.
Soluzione 3:
Controlla rssh che è una shell falsa che consente sftp ma nega ssh
Maggiori informazioni su RSSH
http://www.pizzashack.org/rssh/
RPM
http://pkgs.repoforge.org/rssh/
Puoi configurare rssh per consentire/negare diversi comportamenti come sft, scp ecc.
Soluzione 4:
Puoi modificare /etc/passwd e dare a quell'utente una shell falsa in modo che non possa usare ssh.