用同一个用户登录宝塔面板的ftp与Linux的sftp

情况:

不是同一个用户,需要两个用户,一个来自宝塔面板,另一个是linux用户。Pure-FTPd 已经将用户从Linux系统中解耦了。

理由

Pure-FTPd,理论上最快。因为数据明文传输,没有加密解密的CPU开销,能最大程度利用网络带宽。但是不安全。用户名、密码和文件内容都以明文传输,在公网上极易被窃取。相对复杂。需要开放多个端口(默认21和20或动态端口),在防火墙和NAT环境下容易出问题。取决于客户端和服务器是否支持断点续传与恢复,协议本身不原生支持。

SFTP,相对较慢。CPU(尤其是性能较弱的设备)会成为瓶颈,因为所有数据都需要实时加密和解密。但是安全。所有数据通过SSH加密通道传输,能有效防止窃听和篡改。简单稳定。仅需一个端口(默认22),穿透防火墙容易,连接更稳定。协议原生支持断点续传与恢复,可以从中断处继续传输,对于200GB的文件非常关键。

总的来说,SFTP天生安全,无需额外配置。SFTP更省心。SFTP在对于200GB的文件场景下优势明显。

宝塔面板配置

先在宝塔面板中创建一个ftp用户,这没啥难度。

Linux配置

这个相对比较复杂。

bash 复制代码
# 创建系统用户 ftp(解决:Pure-FTPd 在启动时找不到系统用户 ftp,导致服务运行异常)
useradd -r -s /bin/false ftp

# 创建用户(bak135),指定家目录(/bak135/AutoBackUp),并禁止其登录shell(/usr/sbin/nologin)
useradd -d /bak135/AutoBackUp -s /usr/sbin/nologin bak135

# 设置用户密码
passwd bak135

# 创建一个组,比如叫 sftp_group
groupadd sftp_group

# 将 bak135 用户加入 sftp_group 组
groups bak135

# 将系统用户 bak135 加入 sftp_group
usermod -aG sftp_group www

#先查看 sftp_group 的 GID
getent group sftp_group
# 输出 sftp_group:x:1004:bak135

#修改虚拟用户 bak135 的 GID(上面的 1004)
/www/server/pure-ftpd/bin/pure-pw usermod bak135 -g 1004

# 修改后必须更新数据库
/www/server/pure-ftpd/bin/pure-pw mkdb

# 设置目录的组权限
chown -R :sftp_group /bak135/AutoBackUp

# 设置目录权限
chmod -R 775 /bak135/AutoBackUp
chmod g+s /bak135/AutoBackUp 

修改 SSH 配置

bash 复制代码
vi /etc/ssh/sshd_config
bash 复制代码
# 在文件末尾添加以下配置
Match User bak135
    ChrootDirectory /bak135
    ForceCommand internal-sftp -d /AutoBackUp
    AllowTcpForwarding no
    X11Forwarding no
    PasswordAuthentication yes
bash 复制代码
systemctl restart ssh
systemctl restart pure-ftpd
相关推荐
未济2 天前
linux 配置环境变量
linux
傲世仙尊2 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
_艾伦 耶格尔.2 天前
进程间通信
linux
AI职业加油站2 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
Liuqy-052 天前
Linux IO编程——静态库、动态库
linux
此冬歌咏2 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
彧azz2 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
-梅2 天前
linux(8) 软硬链接
linux·运维·服务器
Wang's Blog2 天前
Java 项目实战: 外卖平台-文件下载与ServletOutputStream回写浏览器
服务器·项目开发