我制作了一个使用 Rsync 的 shell 备份脚本,并试图摆脱密码提示,因为它将使用 CRON 来运行。我在 shell 脚本中设置了变量:
PASSWORD_FILE=rsync_password
该文件中的密码只占一行。
但是当我运行(忽略$DESTINATION
)
rsync -aRvz tmp $DESTINATION --password-file=$PASSWORD_FILE
它仍然给我提示。我该如何实现?我不能允许提示,也不想使用按键。
谢谢
答案1
--password-file
仅当您使用 rsync 守护程序时才设置密码。当通过 rsh 或 ssh 使用 rsync 时,它不起作用。
推荐使用公钥进行 ssh 身份验证。它既安全又简单。在客户端生成私钥(ssh-keygen
)并运行ssh-copy-id
以将其复制到服务器。
如果你有非常好的理由不使用 ssh 密钥(提示:可能没有),你可以使用预计将 SSH 密码插入流中。这本来就不是一件容易的事,事实上 SSH 的设计就是为了使这变得困难,理由很充分(密码不利于安全,而您使用密码的方式会使其特别暴露)。