返回列表 发布新帖
查看: 21|回复: 0

Linux系统SFTP服务器搭建指南

发表于 3 天前 | 查看全部 |阅读模式

这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
SFTP(SSH File Transfer Protocol)是一种安全的文件传输协议,基于SSH协议提供加密的文件传输功能。下面是在Linux系统上搭建SFTP服务器的详细步骤。
1. 确认SSH服务已安装
SFTP是SSH的一个子系统,因此首先需要确保SSH服务已安装并运行:
  1. # 检查SSH服务状态
  2. sudo systemctl status sshd

  3. # 如果未安装,使用以下命令安装(以Ubuntu/Debian为例)
  4. sudo apt update
  5. sudo apt install openssh-server

  6. # 启动SSH服务
  7. sudo systemctl start sshd
  8. sudo systemctl enable sshd
复制代码
2. 创建SFTP用户组(可选)
为了更好的管理SFTP用户,可以创建一个专门的用户组:
  1. sudo groupadd sftpusers
复制代码
3. 创建SFTP用户方法一:普通用户转换为SFTP用户
  1. # 创建新用户(例如sftpuser1)
  2. sudo useradd -m -G sftpusers sftpuser1

  3. # 设置密码
  4. sudo passwd sftpuser1

  5. # 修改用户shell为/sbin/nologin(禁止shell登录)
  6. sudo usermod -s /sbin/nologin sftpuser1
复制代码
方法二:创建仅限SFTP访问的用户(更安全)
  1. # 创建用户并指定主目录
  2. sudo useradd -m -d /home/sftpuser1 -G sftpusers -s /bin/false sftpuser1

  3. # 设置密码
  4. sudo passwd sftpuser1

  5. # 设置目录权限
  6. sudo chown root:root /home/sftpuser1
  7. sudo chmod 755 /home/sftpuser1

  8. # 创建用户上传目录
  9. sudo mkdir /home/sftpuser1/uploads
  10. sudo chown sftpuser1:sftpusers /home/sftpuser1/uploads
  11. sudo chmod 755 /home/sftpuser1/uploads
复制代码
4. 配置SSH以限制SFTP访问
编辑SSH配置文件 /etc/ssh/sshd_config:
  1. sudo nano /etc/ssh/sshd_config
复制代码
在文件末尾添加或修改以下内容:
  1. # 禁用SFTP子系统注释(如果已注释)
  2. Subsystem sftp /usr/lib/openssh/sftp-server

  3. # 或者对于较新版本
  4. # Subsystem sftp internal-sftp

  5. # 限制sftpusers组的用户只能使用SFTP
  6. Match Group sftpusers
  7.     ChrootDirectory %h
  8.     ForceCommand internal-sftp
  9.     AllowTcpForwarding no
  10.     X11Forwarding no
复制代码
保存并退出编辑器,然后重启SSH服务:
  1. sudo systemctl restart sshd
复制代码
5. 测试SFTP连接
从客户端测试连接:
  1. sftp sftpuser1@your_server_ip
复制代码
或者使用图形化SFTP客户端如FileZilla、WinSCP等。
6. 常见问题解决6.1 连接被拒绝
  • 检查SSH服务是否运行:sudo systemctl status sshd
  • 检查防火墙设置:sudo ufw status(如果使用UFW)
  • 确保端口22开放:sudo ufw allow 22

6.2 权限问题
确保Chroot目录及其上级目录属主为root,权限为755:
  1. sudo chown root:root /home/sftpuser1
  2. sudo chmod 755 /home/sftpuser1
复制代码
6.3 用户无法上传文件
确保用户对上传目录有写权限:
  1. sudo chown sftpuser1:sftpusers /home/sftpuser1/uploads
  2. sudo chmod 755 /home/sftpuser1/uploads
复制代码
7. 安全性建议
  • 禁用root用户的SFTP访问
  • 使用SSH密钥认证代替密码
  • 定期更新SSH服务
  • 考虑更改默认SSH端口
  • 使用fail2ban防止暴力破解

通过以上步骤,您已经成功在Linux系统上搭建了一个基本的SFTP服务器,并进行了适当的安全配置。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2025 Suike Tech All Rights Reserved. 随客交流社区 (备案号:津ICP备19010126号) |Processed in 0.094705 second(s), 7 queries , Gzip On, MemCached On.
关灯 在本版发帖返回顶部
快速回复 返回顶部 返回列表