在 Linux 上使用 SSH 设置 Rsync
【摘要】 以下步骤说明了如何通过 ssh 设置不要求密码的 rsync
当我执行 rsync 时,它会在开始传输之前询问我在远程服务器上的密码。我想避免这种情况,并在没有密码的情况下执行 rsync。能否举例说明如何在 Linux 上无密码通过 ssh 设置 rsync?
以下步骤说明了如何通过 ssh 设置不要求密码的 rsync。当您使用 rsync 为自动备份安排 cron 作业时,这很有帮助。
1. 通过 ssh 测试 rsync(使用密码):
执行 rsync 以确保它在远程服务器上询问您帐户的密码,并成功地将文件复制到远程服务器。
以下示例将本地文件夹 /home/ramesh 同步到远程文件夹 /backup/ramesh(在 192.168.200.10 服务器上)。
我们在之前的 15 篇rsync 示例文章中详细讨论了 rsync 。
这应该会询问您在远程服务器上的帐户密码。
rsync -avz -e ssh /home/ramesh/ramesh@192.168.200.10:/backup/ramesh/
2. ssh-keygen 生成密钥。
现在设置 ssh,以便在执行 ssh 时它不会要求输入密码。在本地服务器上使用 ssh-keygen 生成公钥和私钥。
$ ssh-keygen
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
注意:当它要求您输入密码时,只需按回车键,这里不要输入任何密码。
3. ssh-copy-id 复制公钥到远程主机
使用 ssh-copy-id 将公钥复制到远程主机。
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.200.10
注意:以上将询问您在远程主机上的帐户密码,并自动将公钥复制到适当的位置。如果 ssh-copy-id 对您不起作用,请使用我们之前讨论的方法来设置 ssh passwordless login。
4. 无密码通过 ssh 执行 rsync
现在,您应该能够在不输入密码的情况下通过 ssh 连接到远程主机。
SSH 192.168.200.10
再次执行rsync,这次它不应该要求你输入任何密码。
rsync -avz -e ssh /home/ramesh/ramesh@192.168.200.10:/backup/ramesh/
如果要自动安排此 rsync 备份作业,请使用cron进行设置。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)