我想设置一个通过SSH连接的RSync作业。
我有我的计算机(backup @ myhost)和远程主机(test @ remhost),我需要备份文件夹〜/包含所有内容的文件。ssh用户测试仅对〜/文件夹中的所有文件和文件夹具有读取权限。我想使用rsync将test @ remhost:〜/ something文件夹复制到backup @ myhost:〜/ bak文件夹。
为此,我在Ubuntu 11.10(Oneiric)上通过BASH使用以下命令:
rsync -avz -e ssh test@remhost:~/something/ ~/bak/
点击回车后我得到这个:
test@remhost's password:
我输入密码,rsync正常工作。
我要执行上述命令以自动输入密码并将其作为参数传递,或者自动输入密码并开始作业。
我尝试执行,rsync -avz -e ssh test:password@remhost:~/something/ ~/bak/
但仍然要求输入密码,这很烦人。
我不想听到任何类型的密钥(RSA,DSA或任何其他密钥)。我只想要一个简单的命令即可登录并完成工作。
编辑:一种可能的情况是,如果禁用了公用密钥身份验证,则您无法更改它。例如,如果您使用OpenSSH,则需要服务器上的root特权才能编辑文件sshd_config
并添加PubkeyAuthentication yes
。
编辑:这是最终为我工作的东西:
sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/
请注意,此方法不安全,因为它以纯文本形式发送密码,并且容易受到中间人攻击。建议使用密钥加密来增强安全性。