sshd_config
、sshd_config.bak
或整个/etc/ssh
目录)、用户数据(/home
目录)、SSH密钥(/etc/ssh/ssh_host_*
)及日志文件(/var/log/auth.log
或/var/log/secure
)已存储在安全位置(如本地磁盘、外部硬盘或云存储)。SFTP的核心配置存储在/etc/ssh/sshd_config
文件中,恢复方法取决于之前的备份方式:
tar
命令解压备份文件至原位置,覆盖现有配置:sudo tar xzvf sshd_config_backup.tar.gz -C /
/etc/ssh
目录:直接解压备份目录至/etc
:sudo tar xzvf ssh_backup.tar.gz -C /
Subsystem sftp
、ChrootDirectory
等)复制到/etc/ssh/sshd_config
文件中,保留原有注释和格式。SFTP用户的数据通常存放在/home
目录下(每个用户对应一个子目录),使用以下命令恢复:
sudo tar xzvf home_backup.tar.gz -C /
恢复后,需检查用户主目录的权限是否正确(建议设置为755
,即drwxr-xr-x
),避免权限问题导致无法访问。
若之前配置了SSH密钥认证,需恢复/etc/ssh/
目录下的密钥文件(如ssh_host_rsa_key
、ssh_host_ecdsa_key
):
sudo tar xzvf ssh_keys_backup.tar.gz -C /
恢复后,确保密钥文件的权限正确(私钥为600
,公钥为644
)。
日志文件(如/var/log/auth.log
或/var/log/secure
)用于记录SFTP连接和认证信息,恢复方法如下:
sudo tar xzvf auth_log_backup.tar.gz -C /
sudo tar xzvf secure_log_backup.tar.gz -C /
注意:恢复日志文件不会影响SFTP服务运行,仅用于后续审计。
恢复所有配置后,必须重启SSH服务(sshd
)以使更改生效:
sudo systemctl restart sshd
若系统使用firewalld
防火墙,需确保端口22
(SFTP默认端口)已开放:
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
检查SSH服务状态:确认SSH服务已启动并运行正常:
sudo systemctl status sshd
若状态显示为active (running)
,则表示服务正常。
测试SFTP连接:使用SFTP客户端(如命令行sftp
或FileZilla)连接服务器,验证配置是否生效:
sftp your_username@your_server_ip
输入密码后,若能成功进入用户主目录并执行ls
、put
等命令,则说明恢复成功。
检查日志确认无错误:查看/var/log/secure
或journalctl -u sshd
日志,确认无SFTP subsystem not found
、Permission denied
等错误信息。
tar -tzvf
查看备份内容),避免因备份损坏导致恢复失败。755
,避免用户无法访问自己的目录;密钥文件权限需严格设置为600
(私钥)和644
(公钥),防止未授权访问。setenforce 0
临时关闭或修改/etc/selinux/config
文件),确保SFTP服务正常运行。