我正在尝试创建一个 cron 作业来使用 sftp 通过互联网执行服务器备份。但在执行实际备份之前,我想验证服务器是否连接到正确的备份计算机,因为其 IP 地址可能会定期更改。
我的想法是在备份机器的 sftp 文件夹中放置一个包含校验和的文件abc123
,让服务器在执行备份传输之前首先读取并比较该校验和。我已经设置了 ssh 密钥以允许无需密码的身份验证。如何使用 sftp 命令执行此验证?
答案1
SSH 已经解决了这个问题。第一次从客户端连接到服务器时,客户端会将服务器的公钥记录在~/.ssh/known_hosts
.如果密钥在后续连接中发生变化,ssh
则会抱怨服务器被冒充并拒绝连接。 (可以通过配置选项禁用此机制,但是……不要这样做。)