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

ase*_*seq 5 linux ssh rsync

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

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

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

mgo*_*ven 6

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

rsync -e 'ssh -o PasswordAuthentication=no' ...
Run Code Online (Sandbox Code Playgroud)

还有一个BatchMode选项可以禁用密码身份验证并减少超时:

rsync -e 'ssh -o BatchMode=yes' ...
Run Code Online (Sandbox Code Playgroud)