rsync文件作为用户使用ssh密钥

时间:2012-04-03 23:00:55

标签: bash cron rsync

我正在尝试将一些文件rsync到我拥有的备份主机上 我希望能够以cron用户身份执行此操作(在此示例中名为cron_user) 目标主机在〜/ .ssh / authorized_keys文件中有一个带有ip地址的“from”行,我已将私有DSA密钥复制到用户受保护的目录(在封装的ssh -i命令中指定)。

我仍然会收到提示输入密码的提示。还有另外一种解决方法,或者是否有一些我错过的绕过需要密码并引用我指定的ssh密钥的东西?

sudo rsync  --timeout=3600 -azO  -e 'ssh -i /var/cron_user/cron_user' /tmp/bacup1-$(date'+%Y-%m-%d' ).tgz /tmp/backup2$(date '+%Y-%m-%d' ).tgz cron_user@hbackup00:/database/backups/app_backup/

经过进一步调查,使用-v表明它不允许使用基于IP的密钥:

 IP: debug1: Remote: Your host '10.5.122.118' is not permitted to use this key for login. 

虽然我在/home/user_cron/.ssh/authorized_keys文件中列出了IP:

 [root@hbackup00 user]# cat ~cron_user/.ssh/authorized_keys 
 from="10.5.112.42,10.5.122.118,10.5.100.200,10.5.100.205,10.5.99.223,10.4.99.229,10.4.99.223,10.4.100.182" ssh-dss

我是否缺少允许此用户在没有密码的情况下进行身份验证的内容?我已经测试过使用ssh -i从这里列出的其他主机调用相同的密钥文件,没有问题......

2 个答案:

答案 0 :(得分:1)

以下是一些可以帮助您调试的建议:

  • 直接尝试ssh,不使用rsync。这将有助于隔离问题 - 如果它仍然失败,您可以减少测试,如果它有效,那么您知道ssh执行的rsync调用与您认为的不同/etc/ssh/sshd_config调用是的,你可以调查一下。

  • 调高服务器上的日志记录。在LogLevel VERBOSE中,设置sshd_config或更高版本。 (请参阅-vvv手册页。)有时,服务器会记录不与客户共享的有趣信息。

  • 使用{{1}}在客户端命令行中提高日志记录。

答案 1 :(得分:0)

sshd是傀儡控制的。 D'哦!