温馨提示×

centos如何备sftp配置

小樊
40
2026-10-08 21:26:57
栏目: 智能运维

在 CentOS 上“备份 SFTP 配置”,通常是指备份与 SFTP 相关的系统配置和服务设置,而不是备份 SFTP 传输的文件数据。下面按常见场景说明。


一、SFTP 相关配置文件位置(先搞清楚要备什么)

SFTP 一般依赖 OpenSSH,主要配置文件包括:

  1. SSH 主配置
/etc/ssh/sshd_config
  1. SFTP 子配置或包含目录(CentOS 7/8 常见)
/etc/ssh/sshd_config.d/*.conf
  1. SSH 主机密钥(重要,恢复后客户端不会报警)
/etc/ssh/ssh_host_*
  1. SFTP 用户与权限相关
  • /etc/passwd
  • /etc/shadow
  • /etc/group
  • /etc/sudoers(如用了 sudo 限制)
  1. SFTP 根目录(如 chroot) 例如:
/sftp
/home/sftpuser

(仅备份目录结构或权限,不需备份数据时可只记权限)

  1. SELinux 上下文(CentOS 默认开启)
semanage fcontext -l | grep sftp

二、最常用备份方式(推荐)

✅ 方法 1:直接打包配置(最实用)

mkdir -p /backup/sftp/$(date +%F)
cp -a /etc/ssh /backup/sftp/$(date +%F)/ssh
cp -a /etc/passwd /etc/shadow /etc/group /backup/sftp/$(date +%F)/

或一条命令:

tar czf /backup/sftp-config-$(date +%F).tar.gz \
  /etc/ssh \
  /etc/passwd \
  /etc/shadow \
  /etc/group

✅ 方法 2:使用 rsync 备份(适合定期)

rsync -a /etc/ssh /backup/sftp_config/

三、如果 SFTP 使用了 chroot(重点)

例如 sshd_config 中有:

Match User sftpuser
    ChrootDirectory /sftp
    ForceCommand internal-sftp

需要额外记录:

ls -ld /sftp
getfacl /sftp

恢复时权限错会导致 SFTP 无法登录。


四、恢复 SFTP 配置(示例)

tar xzf sftp-config-2026-01-21.tar.gz -C /
systemctl restart sshd

⚠️ 注意:

  • 恢复 sshd_config 后务必测试:
sshd -t
  • 防火墙 / SELinux 也要一致

五、自动化备份(可选)

crontab -e

每天凌晨备份:

0 2 * * * tar czf /backup/sftp-$(date +\%F).tar.gz /etc/ssh /etc/passwd /etc/shadow /etc/group

六、如果你指的是“备份 SFTP 上的文件”

那就不是配置备份,而是:

rsync -avz sftpuser@ip:/remote/path /local/backup/

或定时任务 + 密钥登录。


如果你能说明:

  • CentOS 版本(7 / 8 / Stream)
  • 是否用 chroot
  • 是想备份配置还是备份数据

我可以给你更精确的脚本。

0 踩