如何防止 rsync(使用 ssh 作为远程 shell)遇到密码提示

如何防止 rsync(使用 ssh 作为远程 shell)遇到密码提示

我想运行 rsync 而不需要输入密码。我知道我可以使用 ssh 密钥来做到这一点,一旦将正确的密钥复制到远程服务器,rsync 就可以正常登录而无需用户交互。

但是,当密钥被更改、被删除,或者在某些自动化的情况下,将服务器添加到要 rsync 的服务器列表中时,我希望 rsync 不会提示输入密码。

意思是,rsync 应该只尝试使用 ssh 进行无密码登录,如果这不起作用,则继续进行,而不必处理密码提示和可能的长时间超时。

答案1

您可以配置 SSH 客户端以不尝试密码验证:

rsync -e 'ssh -o PasswordAuthentication=no' ...

还有一个BatchMode禁用密码验证并减少超时的选项:

rsync -e 'ssh -o BatchMode=yes' ...

相关内容