我正在设置备份服务器,它将连接到生产服务器并通过 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