2012-04-03 8 views
1

Ich versuche, einige Dateien zu einem Backup-Host rsync ich habe.
Ich würde gerne in der Lage sein, dies als Cron-Benutzer (in diesem Beispiel cron_user genannt) zu tun.
Der Zielhost hat eine "von" -Zeile in der ~/.ssh/authorized_keys-Datei mit der IP-Adresse, und ich habe den privaten DSA-Schlüssel in ein benutzergeschütztes Verzeichnis kopiert (angegeben im gekapselten Befehl ssh -i).Rsync-Dateien als Benutzer mit SSH-Schlüssel

Ich werde immer noch aufgefordert, ein Passwort einzugeben. Gibt es einen anderen Weg, oder fehlt mir etwas, das umgeht und ein Passwort erfordert und auf den angegebenen ssh-Schlüssel verweist?

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/ 

Bei der weiteren Untersuchung, eine -v zeigt, dass es die Verwendung des Schlüssels auf Basis von IP nicht ist erlaubt:

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

Obwohl ich die IP-in/home/user_cron/aufgeführt. ssh/authorized_keys-Datei:

[[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 

gibt es etwas, ich vermisse diese Benutzer zu ermöglichen, ohne ein Passwort zu authentifizieren? Ich habe getestet, um einen ssh -i mit dem gleichen Schlüssel-Datei von anderen Hosts hier aufgeführten Aufruf, keine Probleme ...

+1

Was passiert, wenn Sie einfach 'ssh -i/var/cron_user/cron_user uptime' von einer Eingabeaufforderung aus ausführen? Funktioniert es? Oder nicht? Wenn nicht, gibt es etwas Nützliches in den Protokollen auf dem Remote-Server? – larsks

+0

Ich würde zuerst auf Datei-Dauerwellen schauen: SSH kann über diese schreiben. Zweitens würde ich mir die selinux-Audit-Dateien ansehen, die Schlüsseldatei könnte einen falschen Kontext haben und ihr korrekter Kontext ist für ssh möglicherweise nicht verfügbar. – MattH

+0

Nachweis erbracht, dass SELinux vollständig deaktiviert ist, gewohnt auf unseren Systemen: [eshrago @ hbackup00 selinux] $ PWD /etc/selinux [eshrago @ hbackup00 selinux] $ deaktiviert Config grep # \t deaktiviert - SELinux vollständig deaktiviert ist. SELINUX = deaktiviert [eshrago @ hbackup00 selinux] $ – user1172482

Antwort

1

Hier einige Vorschläge sind helfen Sie debuggen:

  • die ssh direkt versuchen, ohne rsync. Dies wird helfen, das Problem zu isolieren - wenn es immer noch fehlschlägt, haben Sie weniger zu testen, und wenn es funktioniert, dann wissen Sie, dass ssh Aufruf, der rsync durchführt, unterscheidet sich von dem, den Sie dachten, und Sie können das untersuchen.

  • Melden Sie sich am Server an. Geben Sie in /etc/ssh/sshd_configLogLevel VERBOSE oder höher ein. (Siehe die Manpage sshd_config.) Manchmal protokolliert der Server interessante Informationen, die er nicht mit dem Client teilt.

  • Aktivieren Sie die Protokollierung in der Befehlszeile Ihres Clients mit -vvv.

Verwandte Themen