tyan_trinity
New Member
Hallo zusammen!
Erstmal Gratulation zu diesem hervorragenden Forum, in dem man auch als Einsteiger verständliche Informationen findet! Sehr gelungen!
Nun zu meiner Problematik: Ich bin gerade dabei eine Backup-Lösung für meinen ersten Root-Server zu schaffen. Dafür habe ich mir zu Hause auf einem Rechner SUSE Linux 9.3 installiert. Auf meinem Server läuft derzeit auch SUSE Linux 9.3 mit SA24. Um meine Backups zu automatisieren habe ich mir erstmal einige Artikel durchgelesen - die ich jedem, der sich das erste mal damit beschäftigt nur wärmstens empfehlen kann:
Snapshot-Backups mit Rsync
Backups mit Rsync
Die Links habe ich natürlich auch aus diesem Forum hier . Ausserdem habe ich mir das enstprechende Buch von Wolfgang Barth, "Datensicherung unter Linux" gekauft und den Rsync-Teil gelesen.
In dem Artikel von Heinlein gibt es fertige Skripte, die ich allerdings nicht verwenden möchte, weil ich gerne verstehen möchte, was ich da mache. Ich fange also ganz rudimentär an:
Zunächst habe ich mir mit ssh-keygen eine private und eine öffentliche Schlüsseldatei gebastelt. Die öffentliche habe ich auf meinen Server geladen und in authorized-keys eingefügt.
Dann habe ich mich mit dem SSH-Agent beschäftigt und seine Ausgaben in eine agent.sh-Datei gespeichert. Jetzt habe ich ein kleines Skript:
Wenn ich dieses Skript nun per Cronjob aufrufe funktioniert es wunderbar. Nun weiß ich, das ich mit der Strategie das alles per root zu machen, schon ein paar Sicherheitsaspekte außer acht lasse. Bis ich aber dazu in der Lage bin einen Backup-User anzulegen, möchte ich gerne den Zugriff mit dem Key auf das im Skript beschriebene Kommando beschränken. Und genau hier liegt mein Problem. Ich krieg es einfach nicht auf die Reihe... ich habe nun schon stundenlang nach der korrekten Syntax gesucht, habe diverse Varianten ausprobiert, schaffe es aber einfach nicht. Überall steht das man das identische Rsync-command in der authorized-keys hinterlegen muss und zwar genau vor dem key, der key muss danach in der gleichen Zeile stehen... es klappt nicht. Deshalb nun meine Frage an Euch: was mache ich falsch? Für oben genanntes Kommando müsste in meiner authorized-keys imho doch einfach folgendes stehen:
Wenn ich das so mache bekomme ich folgende Fehlermeldung vom Cronjob:
Permission denied (publickey,keyboard-interactive).
rsync: connection unexpectedly closed (0 Bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(359)
Und, wie gesagt, führe ich den Cronjob ohne die Command-Restriction in authorized_keys aus, funktioniert das alles einwandfrei... was mache ich falsch??
Erstmal Gratulation zu diesem hervorragenden Forum, in dem man auch als Einsteiger verständliche Informationen findet! Sehr gelungen!
Nun zu meiner Problematik: Ich bin gerade dabei eine Backup-Lösung für meinen ersten Root-Server zu schaffen. Dafür habe ich mir zu Hause auf einem Rechner SUSE Linux 9.3 installiert. Auf meinem Server läuft derzeit auch SUSE Linux 9.3 mit SA24. Um meine Backups zu automatisieren habe ich mir erstmal einige Artikel durchgelesen - die ich jedem, der sich das erste mal damit beschäftigt nur wärmstens empfehlen kann:
Snapshot-Backups mit Rsync
Backups mit Rsync
Die Links habe ich natürlich auch aus diesem Forum hier . Ausserdem habe ich mir das enstprechende Buch von Wolfgang Barth, "Datensicherung unter Linux" gekauft und den Rsync-Teil gelesen.
In dem Artikel von Heinlein gibt es fertige Skripte, die ich allerdings nicht verwenden möchte, weil ich gerne verstehen möchte, was ich da mache. Ich fange also ganz rudimentär an:
Zunächst habe ich mir mit ssh-keygen eine private und eine öffentliche Schlüsseldatei gebastelt. Die öffentliche habe ich auf meinen Server geladen und in authorized-keys eingefügt.
Dann habe ich mich mit dem SSH-Agent beschäftigt und seine Ausgaben in eine agent.sh-Datei gespeichert. Jetzt habe ich ein kleines Skript:
Code:
. agent.sh
rsync --archive --compress --delete --exclude "proc/" --exclude "sys/" -e 'ssh -i /root/.ssh/id_rsa' root@192.168.0.1:../ ../192.168.0.2/
Wenn ich dieses Skript nun per Cronjob aufrufe funktioniert es wunderbar. Nun weiß ich, das ich mit der Strategie das alles per root zu machen, schon ein paar Sicherheitsaspekte außer acht lasse. Bis ich aber dazu in der Lage bin einen Backup-User anzulegen, möchte ich gerne den Zugriff mit dem Key auf das im Skript beschriebene Kommando beschränken. Und genau hier liegt mein Problem. Ich krieg es einfach nicht auf die Reihe... ich habe nun schon stundenlang nach der korrekten Syntax gesucht, habe diverse Varianten ausprobiert, schaffe es aber einfach nicht. Überall steht das man das identische Rsync-command in der authorized-keys hinterlegen muss und zwar genau vor dem key, der key muss danach in der gleichen Zeile stehen... es klappt nicht. Deshalb nun meine Frage an Euch: was mache ich falsch? Für oben genanntes Kommando müsste in meiner authorized-keys imho doch einfach folgendes stehen:
Code:
command="rsync --archive --compress --delete --exclude "proc/" --exclude "sys/" -e 'ssh -i /root/.ssh/id_rsa' root@192.168.0.1:../ ../192.168.0.2/" ssh-rsa AAAAAAAAAAundderRestdesKeys= root@linux
Wenn ich das so mache bekomme ich folgende Fehlermeldung vom Cronjob:
Permission denied (publickey,keyboard-interactive).
rsync: connection unexpectedly closed (0 Bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(359)
Und, wie gesagt, führe ich den Cronjob ohne die Command-Restriction in authorized_keys aus, funktioniert das alles einwandfrei... was mache ich falsch??