使用openssh自带的sftp功能,并禁用shell,还自带天然chroot功能!在/etc/ssh/sshd_config最后配置Match段:

Match User druggo
    ChrootDirectory %h
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

该账户登录ssh会提示This service allows sftp connections only然后退出。(5.4之前的版本不会提示而是一直等待)。也可以Match Group对多个账户更方便!

注意事项:
1. %h为用户home目录(也可以直接指定一个目录),必须设置属主为root
2. umask设置可以在/etc/pam.d/sshd里加一行"session optional pam_umask.so umask=0002"
3. 5.4之前版本可能需要把subsystem sftp那行改为"Subsystem sftp internal-sftp"

PS:如果只想给ssh隧道功能,注释掉ChrootDirectory,并把AllowTcpForwarding改为yes,把ForceCommand改为false即可