Linux SFTP服务部署

1、创建sftp组

groupadd sftp

 

2、创建sftp所用的用户

#用户名sftpuser,创建用户到用户组,并禁止登录
useradd -g sftp -s /bin/false sftpuser -d /data/sftpuser

#修改密码
passwd sftpuser

 

3、修改ssh配置

vim /etc/ssh/sshd_config

a. 注释Subsystem sftp /usr/libexec/openssh/sftp-server(若不注释,可以通过"cd / "看到系统所有文件)

 

 b. 在文件末尾添加以下配置

# sftp
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /data/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no

> Match Group sftp :匹配sftp组的用户,如果有多个组,用逗号分隔。也可以使用"Match User mysftp"匹配用户,多个用户之间也是用逗号分隔。
> ChrootDirectory /data/sftpuser :将用户的根目录指定到/data/sftpuser
> ForceCommand internal-sftp :指定sftp命令。
> X11Forwarding no :是否允许用户可以使用端口转发。

4、修改用户的根目录,让它属于root

chown root:sftp /data/sftpuser
chmod 755 /data/sftpuser

 

5、创建sftpuser用户可写入的目录,并授权

// 由于sshd_config配置中指定了根目录,根目录无法写入,因此要创建一个用于上传文件的目录。
// 目录所有者为sftpuser,有写入权限;所有组为sftp,无写入权限。

mkdir /data/sftpuser/sftpdata
chown sftpuser:sftp /data/sftpuser/sftpdata
chmod 755 /data/sftpuser/sftpdata

 

如果需要多个目录,可以接着创建,然后赋予同样的权限即可,如:

mkdir /data/sftpuser/sftpdata123
chown sftpuser:sftp /data/sftpuser/sftpdata123
chmod 755 /data/sftpuser/sftpdata123

 

还可以创建软连接,看自己需求:

ln -s /data/sftpuser/sftpdata /data/sftp_dir

 

6、关闭selinux、firewallid

略...

 

7、重启sshd服务

systemctl restart sshd

 

8、测试

#连接,然后输入命令即可
sftp sftpuser@10.x.x.50

 

posted @ 2023-02-20 15:58  米兰的小铁將  阅读(893)  评论(0)    收藏  举报