在没有 ssh-agent 的情况下在 cron 中进行 rsync 吗?

在没有 ssh-agent 的情况下在 cron 中进行 rsync 吗?

我正在设置备份服务器,它将连接到生产服务器并通过 cron 任务使用 rsync 获取备份。我的备份服务器上有用户,我创建了公钥,我可以使用 ssh 登录到生产服务器而无需输入密码,但我需要将我的密钥添加到 ssh-agent。

ssh -p 1234 -i id_rsa_pass [email protected]

问题是,当我注销时,ssh-agent 已关闭并且 rsync 失败,因为它需要密码。

rsync -azP --delete -e "ssh -p 1234 -i /home/backup_user/.ssh/id_rsa_pass"  [email protected]:/home/prod_user/backup/  /home/backup_user/backup

是否可以在 cron 中使用 rsync 而无需密码?当我的密钥有密码时,无法将密钥添加到 ssh-agent?

使用不带密码的密钥是个好主意吗?

答案1

通常不建议拥有没有密码的私人 ssh 密钥,因为如果任何人都可以获得该密钥文件,他们就可以在安装了相应公钥的任何系统上“冒充”您。

我唯一会创建私钥的情况是密码就是创建一个分离没有密码的私钥,并在authorized_keys与相关公钥绑定的文件中使用了强制命令。

这是一个很好的答案,其中有关于如何做到这一点的更多详细信息:

https://serverfault.com/questions/749474/ssh-authorized-keys-command-option-multiple-commands

相关内容