本文主要包含:
- 创建新用户
- 创建密钥对用于免密登录新用户
- 将新建用户改造为SFTP用户
- 为SFTP上传数据设置限速
1. 创建新用户
sudo useradd sftp_user
sudo passwd sftp_user # 输入密码
2. 创建密钥对
参考这篇文章 [Linux] 生成 PEM 密钥对实现服务器的免密登录
3. 将新建用户改造为SFTP用户
- 创建数据存储目录并修改权限
sudo chown root:root /data/sftp
sudo chmod 755 /data/sftp
- 打开
/etc/ssh/sshd_config
, 在文件末尾写入
Match User sftp_userForceCommand internal-sftpChrootDirectory /data/sftpAllowTcpForwarding noX11Forwarding no
- 执行
sudo systemctl restart sshd
是设置生效
这样就将用户设为只能用sftp连接(不能使用ssh连接), 且数据存储目录为 /data/sftp
4. 为SFTP上传数据设置限速
首先使用ifconfig
查找网络接口, 一般包含服务器IP那个就是正在使用的网络接口, 比如我这里的em1
然后依次执行以下命令(限速 500KB/s)
# 清除现有的规则
sudo tc qdisc del dev em1 root
# 添加根队列,以便设置带宽限制
sudo tc qdisc add dev em1 root handle 1: htb default 11
# 创建一个带宽限制类,例如将上传速率限制为 500 KB/s
sudo tc class add dev em1 parent 1: classid 1:1 htb rate 500kbit ceil 500kbit
# 设置过滤器以限制该接口上的 TCP 流量,这样它就适用于 SFTP(默认使用端口 22)
sudo tc filter add dev em1 protocol ip parent 1:0 prio 1 u32 match ip protocol 6 0xff flowid 1:1