linux centOS7 搭建sftp

原创
2021/06/16 13:55
阅读数 1.4K

检查openssh版本

[root@VM-0-14-centos .ssh]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

创建分组

[root@VM-0-14-centos .ssh]#groupadd sftp

创建用户(禁止登陆)到分组

[root@VM-0-14-centos .ssh]#useradd -g sftp -s /sbin/nologin yh-sftp

注:-g后面接组;-s指定用户登入后所使用的shell,默认值为/bin/bash。

注:【/bin/bash】指:用户即能使用账号密码连接sftp,又能使用账号密码登录该Linux服务器;        【/sbin/nologin】指:用户只能使用账号密码连接sftp,不能使用账号密码登录该Linux服务器;对于FTP、                                           SFTP、SMTP等程序级服务,我们一般都设置为【/sbin/nologin】。

修改密码

[root@VM-0-14-centos .ssh]#passwd yh-sftp

两次输入密码即可

创建一个目录,来专门存放sftp相关文件

[root@VM-0-14-centos .ssh]#mkdir /data/sftp

在sftp下创建一个与用户名同名的文件夹

[root@VM-0-14-centos .ssh]#cd  /data/sftp
[root@VM-0-14-centos .ssh]#mkdir /yh-sftp

修改sshd_config的配置文件

把原来的sshd_config配置文件里的subsystem行注释掉:

[root@VM-0-14-centos .ssh]#vim /etc/ssh/sshd_config

结尾处追加以下内容

Subsystem sftp internal-sftp

Match Group sftp

ChrootDirectory /data/sftp/%u

ForceCommand internal-sftp

AllowTcpForwarding no

X11Forwarding no

相关参数说明: Subsystem sftp internal-sftp:指定使用sftp服务使用系统自带的internal-sftp Match Group sftp:用来匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割。                                注:当然也可以匹配用户,如:【Match User mysftp】,多个用户名                                       之间也是用逗号分割。 ChrootDirectory /data/sftp/%u:用chroot将用户的根目录指定到/sftp/%u,%u代表用户名,这                                            样用户就只能在/sftp/%u下活动。 ForceCommand   internal-sftp:指定sftp命令

重启sshd服务

[root@VM-0-14-centos .ssh]#systemctl restart sshd

设定父级目录权限

yh-sftp只能访问自己的目录

[root@VM-0-14-centos .ssh]#chown root:sftp /data/sftp

[root@VM-0-14-centos .ssh]#chown root:sftp /data/sftp/yh-sftp

[root@VM-0-14-centos .ssh]#chmod 755 /data/sftp

[root@VM-0-14-centos .ssh]#chmod 755 /data/sftp/yh-sftp

创建存放用户文件的目录并设置拥有者和权限

[root@VM-0-14-centos .ssh]mkdir  /data/sftp/yh-sftp/files
[root@VM-0-14-centos .ssh]chown yh-sftp:sftp /data/sftp/yh-sftp/files
[root@VM-0-14-centos .ssh]chmod 755 /data/sftp/yh-sftp/files

连接测试

sftp 用户名@ip地址
展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部