≡ Menu

如何在UNIX / Linux上使用SSH设置Rsync(不带密码的rsync)

题: 当我执行rsync时,它会在开始传输之前在远程服务器上询问我的密码。我想避免这种情况,并在没有密码的情况下执行rsync。您能用一个示例说明如何在Linux上不通过密码通过ssh设置rsync吗?

回答: 以下步骤说明了如何通过不设置ssh的方式设置rsync’要求输入密码。当您计划cron作业以使用rsync自动备份时,这很有用。

1.在ssh上测试rsync(使用密码):

执行rsync以确保它要求您在远程服务器上的帐户密码,然后将文件成功复制到远程服务器。

以下示例将本地文件夹/ home / ramesh同步到远程文件夹/ backup / ramesh(在192.168.200.10服务器上)。

我们在前15个中详细讨论了rsync rsync的例子 文章。

这应该询问您在远程服务器上的帐户密码。

rsync -avz -essh /home/ramesh/ [email protected]:/backup/ramesh/

2. ssh-keygen生成密钥。

现在设置ssh,使其不会’在执行ssh时要求输入密码。在本地服务器上使用ssh-keygen生成公用密钥和专用密钥。

$ ssh-keygen
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Note: 当它要求您输入密码时,只需按Enter键,并且在此处不输入任何密码。

3. ssh-copy-id将公钥复制到远程主机

使用ssh-copy-id将公用密钥复制到远程主机。

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.200.10

Note: 上面的操作将询问您在远程主机上的帐户密码,并将公钥自动复制到适当的位置。如果ssh-copy-id没有’为了您的工作,请使用我们前面讨论的方法 设置SSH密码少登录.

4.在没有密码的情况下通过ssh执行rsync

现在,您无需输入密码就可以ssh到远程主机。

ssh 192.168.200.10

再次执行rsync,这一次不应要求您输入任何密码。

rsync -avz -essh /home/ramesh/ [email protected]:/backup/ramesh/

如果要自动安排此rsync备份作业,请使用 cron 进行设置。

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! – 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 16 评论… add one }

  • Uday 2011年7月15日,上午8:42

    这非常有用,这是我的待办事项研究的问题之一。现在做!谢谢。

  • chris 2011年7月15日,上午10:42

    很棒的信息。注意:仅当您的身份密钥名为id_rsa.pub或id_dsa.pub时,此方法才有效。如果您选择一个自定义名称,’将必须创建/修改〜./。ssh / config文件(rsync-ing时)。或将-i标志用于ssh命令。

  • 鲨鱼巨菜 2011年7月16日,上午7:46

    我用rsa代替dsa,您对此有何看法?

  • umask666 2011年7月16日,下午7:47

    哟,谢谢你的文章。我了解了ssh-copy-id命令。我以前从未用过。如何在ssh-keygen命令中使用某些选项?

    ssh -t rsa -N”-f〜/ .ssh / id_rsa_key -b 4096 -C‘rsync backup’

    如果未指定rsa,则默认为@shark dsa。

  • umask666 2011年7月16日,下午7:48

    很棒的网站!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!我喜欢它!

  • Iain 2011年9月20日,晚上10:57

    优秀的文章。一直在寻找这个答案已经有一段时间了,这只是票证。谢谢

  • SteveT 2012年2月2日,下午2:09

    大提示!谢谢!

  • 匿名 2012年8月30日,上午3:20

    十分感谢 !
    仅建议避免将空密码短语复制到默认密码中。
    让’s表示空密码短语密钥已创建为〜/ .ssh / id_rsa_empty.pub,当然也可以使用私钥。
    因此,可以在rsync命令的ssh选项中使用它。

    重用上面给出的命令,它给出:
    rsync -avz -e‘ssh -i〜/ .ssh / id_rsa_empty’ /home/ramesh/ [email protected]:/备份/ ramesh /

    希望这会有所帮助
    最好的祝福。
    J-L

  • Omkar A 2013年9月25日,上午3:41

    非常感谢!!这就是我想要的。

  • sophea 2013年10月31日,晚上10:22

    亲爱的大家,
    我如何使用rsync,然后将其压缩到tar文件中,并在名称中包含日期?

  • Shinoy 2013年11月7日,下午2:20

    很好的信息。谢谢拉梅什。

  • pszemek 2013年11月9日,上午5:43

    如果必须指定ssh端口,则可以:
    添加文件〜/ .ssh / config
    并指定主机参数:

    托管YOUR_HOST_ALIAS
    8023端口
    用户the_user_example
    主机名the.host.example

    现在你可以 :
    rsync -avz -essh / home / source / YOUR_HOST_ALIAS:/远程/目的地/

  • 德克·克劳斯(Dirk Krause) 2013年12月22日,下午12:38

    a)与chris交流:如果您选择了其他id文件名,则需要‘-i’ option
    b)唐’不能将波浪号与‘-i’选项:这样做:
    rsync -avze“ssh -i /用户/myName/.ssh/pi1_rsa” test [email protected]:
    (see here)
    c)如果您使用的Mac没有ssh-copy-id, this helps.

  • 何塞·门德斯 2014年1月1日,上午6:06

    有人知道如何将命令发送到后台吗?
    我注销后,nohup不起作用。
    谢谢。

  • sam 2015年1月21日,上午11:47

    可以像执行Cron任务那样将远程服务器与本地服务器同步的工作。谢谢!!!

  • Huseyin 2016年4月1日,上午7:36

    谢谢。

发表评论