我正在尝试使用 ssh 通过网络使用 rsync 备份文件。而且我无法手动输入密码。如何让它自动输入密码。我的 Rsync 命令是 rsync -P -r --delete --checksum USER@IPADDRESS:/home/USER/dir1 /home/USER/dir2
答案1
虽然这不是真正的问题,但我可以建议使用 ssh 公钥/私钥对吗?
使用 ssh-keygen 在启动端生成密钥对,然后将公钥传输到目标上的 ~/.ssh/authorized_keys 中。网络上有大量关于具体步骤的操作指南,我就不在这里重现了。
然后你可以使用额外的选项调用 rsync-e "ssh -i /path/to/private_key"
如果在创建密钥时未指定密码,则允许您在不输入密码的情况下进行 rsync。但请注意,此私钥文件实际上将成为您远程帐户的密码。任何有权访问该文件的人都可以登录到远程端。但如果您设法通过 rsync 的参数将其添加到命令行,那么任何人从命令行获取您的密码也会如此,因此可能没有太大区别。
更好的方法可能是添加密码,但使用 ssh 代理解锁密钥。如果为同一用户运行,rsync 应该会选择该密码。但在脚本中使用时,例如从 cron 中使用,这种方法并不总是有效。