在 Linux 上使用 SSH 设置 Rsync

举报
Tiamo_T 发表于 2022/04/15 09:27:33 2022/04/15
【摘要】 以下步骤说明了如何通过 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200