文件传输安全:SFTP 与 SCP 配置

2026-01-05 16:55:21 241

文件传输安全:SFTP 与 SCP 配置



欢迎来到8455线路检测中心技术小课堂,每天分享一个技术小知识。服务器文件传输的核心需求是 “安全不泄露、权限不越界”,SFTP(SSH 文件传输协议)和 SCP(安全复制)是替代 FTP 的首选方案,无需额外安装软件,通过精细化配置即可实现访问控制、传输加密,下面是具体落地步骤与避坑要点。


一、SFTP 安全配置(推荐首选)

1. 创建独立 SFTP 用户(禁止 SSH 登录,仅允许文件传输)

# 1. 创建用户组

groupadd sftpusers


# 2. 创建用户(无登录shell,主目录为/var/sftp)

useradd -m -d /var/sftp -s /sbin/nologin -G sftpusers sftpuser


# 3. 设置密码

passwd sftpuser


# 4. 调整目录权限(必须根目录owner为root,否则登录失败)

chown root:root /var/sftp

chmod 755 /var/sftp


# 5. 创建上传目录(给用户写权限)

mkdir -p /var/sftp/upload

chown sftpuser:sftpusers /var/sftp/upload

chmod 755 /var/sftp/upload


2. 配置 sshd_config(限制 SFTP 访问)

# 编辑配置文件

vim /etc/ssh/sshd_config


# 注释原 Subsystem sftp 配置,添加以下内容

Subsystem sftp internal-sftp  # 使用内置SFTP模块


# 匹配sftpusers组用户

Match Group sftpusers

    ChrootDirectory /var/sftp  # 禁锢用户在主目录(禁止访问其他路径)

    ForceCommand internal-sftp  # 强制使用SFTP

    X11Forwarding no

    AllowTcpForwarding no

    PasswordAuthentication yes  # 允许密码登录(或禁用,仅用密钥)


# 重启sshd生效

systemctl restart sshd


3. 连接测试(本地终端 / 工具)

# 命令行连接

sftp sftpuser@服务器IP

# 上传文件:put 本地文件路径 /upload/

# 下载文件:get /upload/服务器文件 本地路径

# 工具连接(Xshell/FinalShell):协议选SFTP,输入用户名密码即可



二、SCP 快速传输(适合单次文件 / 目录复制)

1. 本地→服务器(上传)

# 上传文件

scp /本地文件路径 用户名@服务器IP:/目标路径

# 例:scp /home/file.txt root@192.168.1.100:/var/www/


# 上传目录(加-r参数)

scp -r /本地目录路径 用户名@服务器IP:/目标路径


2. 服务器→本地(下载)

scp 用户名@服务器IP:/服务器文件路径 /本地目标路径

# 例:scp root@192.168.1.100:/var/log/nginx.log /home/



三、避坑要点

  1. SFTP 目录权限:ChrootDirectory 指定的目录(如 /var/sftp)必须是 root 所有,且权限≤755,否则用户无法登录;

2.   禁用密码登录:生产环境建议关闭密码认证,仅用密钥登录(在 sshd_config 中设 PasswordAuthentication no),避免暴力破解;

3.   端口修改:默认 SFTP/SCP 走 22 端口,可修改 sshd_config 的 Port 字段(如改为 2222),降低暴露风险;

4.   传输大文件:SCP 传输大文件(10GB+)时可加 -C 参数压缩,-l 限速值(如 -l 10240 限制 10MB/s);

5.   日志审计:在 sshd_config 中开启日志(LogLevel INFO),通过 /var/log/secure 查看传输记录,便于审计。


8455线路检测中心官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,8455线路检测中心整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。更多技术知识,8455线路检测中心期待与你一起探索。

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题:
XML 地图