ubuntu下设置用户只能使用sftp, 不能登录ssh 的配置方法

ubuntu下设置用户只能使用sftp, 不能登录ssh 的配置方法



vi /etc/ssh/sshd_config

Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no  

如果是列出单独用户的写法:

Match user yonghu1
ChrootDirectory /home/yonghu1/
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

Match user yonghu2
ChrootDirectory /home/yonghu2/
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

创建用户组:
# groupadd sftp
# useradd yonghu1
# usermod yonghu1 -g sftp
# usermod yonghu1 -s /bin/false
# usermod yonghu1 -d /home/yonghu1

在ubuntu下,需要root手动创建目录,/home/yonghu1
另外需要再建一级目录 yonghu1,(看起来比较别扭)
mkdir -p /home/yonghu1/yonghu1
这里需要注意,/home/yonghu1 属主必须是root,权限755
也就是说yonghu1 只能在/home/yonghu1/yonghu1 下读写,不能在/home/yonghu1/下读写
/home/yonghu1/ 下的 yonghu1 目录,才真正属于 yonghu1
yonghu2 也是如此,所以达到 yonghu1和yonghu2 互补干扰的目的