温馨提示×

Debian SFTP如何配置实现安全传输

小樊
37
2025-12-06 02:11:25
栏目: 智能运维

Debian SFTP安全传输配置指南

一 基础安全配置

  • 更新系统并安装 OpenSSH 服务器:sudo apt update && sudo apt install openssh-server -y。
  • 编辑 /etc/ssh/sshd_config
    • 禁用 root 登录:PermitRootLogin no
    • 启用公钥认证:PubkeyAuthentication yes;确保 AuthorizedKeysFile .ssh/authorized_keys
    • 按需设置密码认证:PasswordAuthentication yes/no(对外网建议禁用)。
    • 可选限制登录来源:AllowUsers your_username@your_ip_address
    • 保持或启用 SFTP 子系统:Subsystem sftp /usr/lib/openssh/sftp-server
    • 连接保活:ClientAliveInterval 300ClientAliveCountMax 3
  • 重启服务:sudo systemctl restart sshd
  • 防火墙放行 SSH(默认端口 22):sudo ufw allow OpenSSH && sudo ufw enable。
  • 日志监控:实时查看认证日志 sudo tail -f /var/log/auth.log

二 基于密钥的身份认证与自动登录

  • 客户端生成密钥对:ssh-keygen -t rsa -b 4096(私钥 ~/.ssh/id_rsa,公钥 ~/.ssh/id_rsa.pub)。
  • 将公钥复制到服务器:ssh-copy-id user@server_ip
  • 服务器端确保启用公钥:PubkeyAuthentication yes,AuthorizedKeysFile .ssh/authorized_keys。
  • 加固私钥权限:chmod 600 ~/.ssh/id_rsa;chmod 700 ~/.ssh;chmod 644 ~/.ssh/id_rsa.pub。
  • 客户端便捷连接:在 ~/.ssh/config 添加
    Host server_ip
        User username
        IdentityFile ~/.ssh/id_rsa
  • 完成后可直接使用:sftp username@server_ip(无需口令,自动使用密钥)。

三 限制用户与目录的 Chroot Jail

  • 创建 SFTP 用户组:sudo groupadd sftpusers
  • 创建受限用户(禁止 shell 登录):sudo adduser --shell /bin/false --gecos “SFTP User” sftpuser;sudo usermod -aG sftpusers sftpuser。
  • 设置 Chroot 根目录与可写目录:
    • 根目录属主必须为 root:root 且权限 755
      sudo mkdir -p /home/sftpuser
      sudo chown root:root /home/sftpuser
      sudo chmod 755 /home/sftpuser
    • 可写目录(如上传):
      sudo mkdir /home/sftpuser/upload
      sudo chown sftpuser:sftpusers /home/sftpuser/upload
      sudo chmod 755 /home/sftpuser/upload
  • /etc/ssh/sshd_config 增加 Match 段:
    Match Group sftpusers
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
  • 重启服务:sudo systemctl restart sshd
  • 说明:Chroot 要求被限制目录及其上级目录的所有者均为 root,否则会话会失败。

四 连接测试与运维要点

  • 连接测试:
    • 口令登录:sftp username@server_ip
    • 密钥登录:确保已配置密钥后直接 sftp,或在客户端指定私钥。
  • 日志审计:持续关注 /var/log/auth.log 中的 Accepted/Failed 记录。
  • 安全加固清单:
    • 对外网建议禁用密码登录(PasswordAuthentication no),仅保留密钥。
    • 保持系统与软件包更新:sudo apt update && sudo apt upgrade -y。
    • 可选启用 AppArmor/SELinux 等强制访问控制以进一步约束进程权限。

0