2012-04-03 30 views
1

我想將一些文件rsync同步到我擁有的備份主機上。
我希望能夠做到這一點作爲一個cron用戶(在這個例子中命名爲cron_user)。
目標主機在〜/ .ssh/authorized_keys文件中有一個「from」行,並帶有ip地址,並且我已將私有DSA密鑰複製到用戶受保護的目錄(在封裝的ssh -i命令中指定)。rsync文件作爲用戶使用ssh密鑰

我仍然被提示輸入密碼。有沒有另外一種解決方法,或者有什麼我錯過繞過需要密碼和引用我指定的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 [email protected]:/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 /的IP上市。 SSH/authorized_keys文件:

[[email protected] 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調用從這裏開始,沒有任何問題列出的其他主機相同的密鑰文件測試...

+1

如果您只是從命令提示符運行'ssh -i/var/cron_user/cron_user uptime',會發生什麼?它工作嗎?或不?如果沒有,在遠程服務器上的日誌中是否有用? – larsks 2012-04-04 00:39:49

+0

我會首先查看文件權限:SSH可以對這些進行排除。其次,我會查看selinux審計文件,密鑰文件可能有不正確的上下文,並且其正確的上下文可能無法用於ssh。 – MattH 2012-04-04 10:37:28

+0

證實了SELinux是完全禁用,按通常在我們的系統:eshrago @ hbackup00的SELinux] $ PWD 的/ etc/SELinux的 [eshrago @ hbackup00的SELinux] $ grep的禁用配置 #\t禁用 - SELinux的是完全禁用。 SELINUX =禁用 [eshrago @ hbackup00 selinux] $ – user1172482 2012-04-05 18:40:28

回答

1

這裏有一些建議,以幫助您調試:

  • 直接嘗試ssh,不rsync。這將有助於隔離問題 - 如果它仍然失敗,則測試的次數會減少,如果結果正常,則知道正在執行的ssh調用與您認爲的調用不同,您可以調查該調用。

  • 打開服務器上的日誌記錄。在/etc/ssh/sshd_config中,設置爲LogLevel VERBOSE或更高。 (請參閱sshd_config手冊頁。)有時服務器記錄它不與客戶端共享的有趣信息。

  • 在您的客戶端命令行中啓用日誌記錄更高版本,其中-vvv