在 CentOS 上“备份 SFTP 配置”,通常是指备份与 SFTP 相关的系统配置和服务设置,而不是备份 SFTP 传输的文件数据。下面按常见场景说明。
SFTP 一般依赖 OpenSSH,主要配置文件包括:
/etc/ssh/sshd_config
/etc/ssh/sshd_config.d/*.conf
/etc/ssh/ssh_host_*
/etc/passwd/etc/shadow/etc/group/etc/sudoers(如用了 sudo 限制)/sftp
/home/sftpuser
(仅备份目录结构或权限,不需备份数据时可只记权限)
semanage fcontext -l | grep sftp
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
rsync -a /etc/ssh /backup/sftp_config/
例如 sshd_config 中有:
Match User sftpuser
ChrootDirectory /sftp
ForceCommand internal-sftp
需要额外记录:
ls -ld /sftp
getfacl /sftp
恢复时权限错会导致 SFTP 无法登录。
tar xzf sftp-config-2026-01-21.tar.gz -C /
systemctl restart sshd
⚠️ 注意:
sshd_config 后务必测试:sshd -t
crontab -e
每天凌晨备份:
0 2 * * * tar czf /backup/sftp-$(date +\%F).tar.gz /etc/ssh /etc/passwd /etc/shadow /etc/group
那就不是配置备份,而是:
rsync -avz sftpuser@ip:/remote/path /local/backup/
或定时任务 + 密钥登录。
如果你能说明:
我可以给你更精确的脚本。