Linux(CentOS)上配置 SFTP

配置 sftp

如何查看自己服务器上的ssh版本

$ ssh -V

1.需要创建一个用户组,专门用于sftp用户

$ groupadd sftpusers

2.创建一个用户test

$ useradd -s /bin/false -G sftpusers test
注意这里我们将test用户的shell设置为/bin/false使他没有登陆shell的权限

3.编辑 /etc/ssh/sshd_config

找到Subsystem这个配置项,将其修改为
Subsystem sftp internal-sftp

为什么实用 internal-sftp 而不用默认的 sftp-server,这是因为:
1.这是一个进程内的 sftp 服务,当用户 ChrootDirectory 的时候,将不请求任何文件;
2.更好的性能,不用为 sftp 再开一个进程。

非必要操作

再到文件最尾处增加配置设定属于用户组sftpusers的用户都只能访问他们自己的home文件夹
# 匹配用户组,如果要匹配多个组,多个组之间用逗号分割
Match Group sftpusers

# 指定登陆用户到自己的用户目录
ChrootDirectory %h

# 指定 sftp 命令
ForceCommand internal-sftp

# 这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
X11Forwarding no
AllowTcpForwarding no

4.修改test用户home文件夹的权限,让其属于root用户

cd /home
chown root ~test

5.重启sshd服务

$ service sshd restart
or
$ systemctl restart sshd

6.测试用户账号

$ sftp tesst@localhost

你可能感兴趣的:(Linux(CentOS)上配置 SFTP)