Sftp 安装部署

环境说明

CentOS Linux release 7.8.2003

1. 创建sftp用户的脚本

#! /bin/bash

# 创建 sftp 用户组
groupadd sftp
 
# 创建sftp用户的根目录和属主.属组,修改权限(755)
rootdir=/opt/boxdata/data/sftp
if [ ! -d $rootdir ]
then
	mkdir -p $rootdir
fi

chown root:root $rootdir
chmod 755 $rootdir

cd $rootdir

# 创建32个sftp用户
for i in {1..32};
do
	# 添加sftp用户
	useradd -g sftp -s /sbin/nologin -M sftp_user$i
	# 设置用户密码
	echo "sz@123456" | passwd --stdin sftp_user$i
	# 在sftp的目录中创建可写入的目录
	#dir=/opt/boxdata/data/sftp_user$i
	if [ ! -d sftp_user$i ] 
	then
		mkdir -p sftp_user$i
	else
		echo "sftp_user$i directory already exists"
	fi	

	chown sftp_user$i:sftp sftp_user$i
	chmod 755 sftp_user$i
	
done

2. 修改配置文件 sshd_config:vi /etc/ssh/sshd_config

注释掉下面这一行:
Subsystem  sftp    /usr/libexec/openssh/sftp-server

在sshd_config最后加入下面这几行:

Subsystem sftp internal-sftp
# Group / User 这个组的用户或者用户才能访问这个根目录
Match Group sftp
	ChrootDirectory /opt/boxdata/data/
	X11Forwarding no
	AllowTcpForwarding no
ForceCommand internal-sftp

注:

  1. 这里要注意一下,上面这些代码务必放在最后,因为必须要“UseDNS no”后面。

  2. 不同组不同用户匹配不同目录,可以添加多个匹配。

     Match User sftp
     		ChrootDirectory /opt/boxdata/data1/
     		X11Forwarding no
     		AllowTcpForwarding no
     	ForceCommand internal-sftp
     	
     Match User sftp
     		ChrootDirectory /opt/boxdata/data2/
     		X11Forwarding no
     		AllowTcpForwarding no
     	ForceCommand internal-sftp
    

3. 重启sshd:

systemctl restart sshd

4. sftp 环境测试

sftp sftp_user1@IP

备注:
参考网址:https://blog.csdn.net/dx01259/article/details/88428839

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值