Lösung 1:
Beginnend mit Version 4.9 hat OpenSSH (in Centos 5.x nicht verfügbar, aber die ChrootDirectory-Funktion wurde zurückportiert) einen internal-sftp
Subsystem:
Subsystem sftp internal-sftp
Und dann andere Verwendungen blockieren:
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Fügen Sie Ihre Benutzer zu sftponly
hinzu Gruppe. Sie müssen das Heimatverzeichnis des Benutzers auf /
ändern wegen der Chroot und /home/user
sollte root
gehören . Ich würde auch /bin/false
setzen als Shell des Benutzers.
Lösung 2:
Es gibt eine Shell scponly was macht das. Es kann chrooten auch.
Lösung 3:
Überprüfen Sie rssh, eine gefälschte Shell, die sftp zulässt, aber ssh verweigert
Mehr über RSSH
http://www.pizzashack.org/rssh/
Drehzahlen
http://pkgs.repoforge.org/rssh/
Sie können rssh konfigurieren, um verschiedene Verhaltensweisen wie sft, scp usw. zuzulassen/zu verweigern.
Lösung 4:
Sie können /etc/passwd ändern und diesem Benutzer eine gefälschte Shell geben, damit er ssh nicht verwenden kann.