rsnapshot mit ssh ohne Password scheitert

Status
Für weitere Antworten geschlossen.

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
Ich habe rsnapshot installiert. Offenbar ohne Fehler. Dann habe ich /opt/etc/rsnapshot.conf verändert.

snapshot_root /volume1/Sicherung1/
backup user@IP_DER_DS:/home/user/Daten/ Daten/

Offenbar habe ich dabei etwas falsch gemacht: :confused:

DS209> rsnapshot -t hourly
echo 13487 > /opt/var/run/rsnapshot.pid
mv /volume1/Sicherung1/hourly.0/ /volume1/Sicherung1/hourly.1/
/opt/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
--rsh=/opt/bin/ssh \
user@IP_DER_DS:/home/user/Daten \
/volume1/Sicherung1/hourly.0/Daten/
touch /volume1/Sicherung1/hourly.0/
DS209> rsnapshot hourly
ssh: connect to host IP_DER_DS port 22: Connection refused
rsync: writefd_unbuffered failed to write 4 bytes to socket [Receiver]: Broken pipe (32)
rsync error: unexplained error (code 255) at io.c(1530) [Receiver=3.0.7]
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/opt/bin/rsnapshot hourly
----------------------------------------------------------------------------
ERROR: /opt/bin/rsync returned 255 while processing user@IP_DER_DS:/home/user/Daten/

Wenn ich das richtig sehe, funktioniert der Zugang über SSH nicht. Aber wie bringe ich ihn zum Laufen ohne Passworteingabe? Ich bin verwirrt.

Auf der DS ist SSH eigentlich schon installiert, ich kann mich auf ihr auch mit ssh user@IP_DER_DS anmelden. Wenn ich diesem Wiki-Eintrag folgend ssh-keygen -t rsa eingebe, werde ich gefragt, wo ich den key speichern will (/root/.ssh/id_rsa). Ja, wo denn? Und vor allem, als user oder als root? Wie mache ich das auf dem PC, als user oder als root? Wenn ich das richtig verstanden habe, mache ich den Backup ja dann als cron.Job mit root-Rechten aber root...
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44

Danke, den habe ich gesucht.

Bleibt nur die Frage: sollte ich ssh lieber für user oder für root einrichten? Macht es nicht Sinn, wenn user rsnapshot resp. rsync startet?

Auf meiner DS gibt es übrigens kein home-Verzeichnis für root sondern nur für user und admin.


Den kannte ich schon aber der hat mich doch etwas irritiert: so, wie ich das verstanden habe ist doch die Alternative rsync oder rsnapshot?

Und müsste es unten unter Verschlüsseltes Backup via Netzwerk nicht heissen: "Danach hat man die Möglichkeit rsync OHNE rsync Daemon zu nutzen d.h. in diesem Fall müssen keine Module für rsyncd erstellt werden, auch muss der rsyncd nicht laufen"?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Das home für root gibt es garantiert, sonst hast du ein Problem. Im Gegensatz zu "normalen" Usern liegt das Home von root jedoch unter /root. Also genau dort wo es auch in /etc/passwd für root eingetragen ist
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
OK, gefunden.

Kann mir bitte noch jemand sagen, wie ich das mit root/user mache? Also rsnapshot bzw. rsync als user oder root einrichten?
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
Ausserdem frage ich mich, ob ich einen Key nicht auch ohne Putty erstellen kann. Geht auch ssh-keygen -t rsa? Danach habe ich dann

DS209> cd /volume2/homes/user/.ssh/
DS209> ls -l
-rw------- 1 user users 1766 Apr 21 19:22 authorized_keys
-rw-r--r-- 1 user users 396 Apr 21 19:22 authorized_keys.pub

In /etc/ssh/sshd_config habe ich dann eingetragen

AuthorizedKeysFile .ssh/authorized_keys

Wenn ich das richtg verstanden habe, soll ich ihn auch in /opt/etc/rsnapshot.conf eintragen aber wo da genau?

Und was mache ich mit authorized_keys.pub?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Natürlich geht das auch ohne Putty direkt auf der Konsole. Wichtig ist noch, dass der Schlüssel nicht länger als 1024bit wird, sonst wird ssh auf die Schnauze fallen ;)
Mit Putty ist es einfach "angenehmer" weil Putty nach dem Generieren des Schlüssels direkt den String für authorized_keys ausibt, den du einfach mittels copy&paste in die authoized_keys bringen kannst.
Wichtig: Du musst nicht den PubKey als File auf die DS legen. Sondern mit dem Inhalt von PubKey den String für ssh erstellen. Drum würde ich es mit Putty machen, dann kriegst du diesen String pfannenfertig geliefert. Diesen musst du dann in authorized_keys einfügen. Alle anderen Files ignoriert ssh eh
In rsnapshot.conf musst du die Anpassung so machen wie im Wiki Beitrag beschrieben. Wichtig in der rsnapshot.conf MUESSEN alle Leerzeichen TABS sein. Es darf sich nicht ein einziges Leerzeichen in der Datei befinden sonst crashed rsnapshot zu Boden

Zu Frage der User: Wenn du nur Daten eines Users resp "öffentliche" Daten backuppen willst dann ist ein unprivilegierter User sicher sinnvoll. Wenn du aber z.B. die Homes ALLER User backuppen willst, dann ist root einfacher, weil der schlicht auf alles zugreifen darf
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
Nenn' mich Weichei aber ich gebe auf.

Ich habe Putty nicht und finde es auch nicht in den Paketen. Dafür habe ich jetzt Putty-Tools installiert, da gibt es auch ein puttygen allerdings nur für die Konsole und die Optionen überfordern mich auch wieder. Schade, dass es zum Thema "automatisches Backup von Linux-PC auf DS" offenbar keine Unterstützung durch Synology und keine Schritt-für-Schritt-Anleitung mit Bordmitteln gibt. :(
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Vielleicht wäre ein einfacher rsync auf dem Linux-PC und das Starten des Sicherungsdienstes auf der DS einfacher als der rsnapshot.

Itari
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
Tja, das habe ich auch mal geglaubt aber irgendwie bin ich zu blöd. Dabei war einer der Gründe, warum ich mich für Synology entschieden habe: gutes Web-Interface mit Backup-Lösungen für Windows/Mac/Linux... :rolleyes:

Im Handbuch (Kap. 9) wird die Software für Windows beschrieben. Der kleine Guide von Matthieu meint allerdings, dass diese "nicht gerade ein ideales Tool zur Datensicherung" ist. :eek: Für Linux steht im Handbuch nur "Sie können rsync zum Sichern von Linux-Daten auf der Synology DiskStation verwenden." - was ich ja auch inzwischen mache.

Mit dem Assistenten des DSM unter Sicherung/Sicherung/Einstellen kam ich leider auch nicht klar. Sprachlich war mir weder bei der Netzwerksicherung (Synology Server) noch bei der Netzwerksicherung (rsync-kompatibler Server) klar, welche eine Sicherung von einem PC im Netzwerk auf die DS macht. Also habe ich es ausprobiert. Dabei bin dann aber beim Verbindungstest gescheitert, wenn ich die IP des PCs eingetragen habe. :(

Ausserdem hätte ich gerne ein Generationen-Sicherung. Die bietet rsync ja erstmal nicht...
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
13.999
Punkte für Reaktionen
264
Punkte
373
Hallo,
Du willst doch Deinen PC sichern und nicht die DS. Also Sicherung->Netzwerksicherungsdienst und dort aktivieren, das ist alles.

Gruß Götz
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
Also jetzt wird es mir unheimlich! :eek: Reden wir hier die ganze Zeit aneinander vorbei oder bin ich sooo blöd? :confused:

Diesen Haken habe ich längst. Und wenn ich das richtig verstanden habe, ermöglicht er lediglich, dass ich rsync auf der DS benutzen kann. Ich habe ja auch rsyn-deamon-Module auf DS eingerichtet und kann auch vom PC aus mit rsync /media/Daten/ IP_DER_DS::backupModul 1:1 Kopien auf der DS erstellen. Ich würde aber gerne Generationen-Kopien haben, deshalb rsnapshot...

Im Handbuch zur Firmware 2.3-1139 steht auf S. 75:
Für die Netzwerk-Datensicherung auf einer anderen Synology DiskStation: Melden Sie sich auf der Ziel-Synology DiskStation an, gehen Sie zu Datensicherung > Netzwerksicherungsdienst und stellen Sie sicher, dass Netzwerk-Sicherungsdienst aktivieren markiert ist, damit die Ziel-DiskStation für die Sicherung zur Verfügung steht.


Matthieu schreibt im kleinen Guide auf S. 51:
Wer noch eine zweite DiskStation besitzt, kann diese zur Sicherung der eigenen Daten verwenden. Doch diese Möglichkeit ist nicht auf Synology-Produkte beschränkt. Synology verwendet das „rsync“-Protokoll zur Datensicherung, welches verschiedene Firmen unterstützen. Zunächst muss dieser Dienst wie alle anderen aktiviert werden. Der entsprechende Kasten befindet sich unter „Sicherung -> Netzwerksicherungsdienst“. Anschließend richtet man die Sicherung unter „Sicherung -> Netzwerksicherung“ ein. Das Vorgehen ähnelt dabei dem der Sicherung auf eine externe Festplatte.

Ich habe nun also ein Ziel-DS, die zur Sicherung zur Verfügung steht und frage mich/Euch, wie ich diese Sicherung meiner Daten vom Linux-PC auf die Linux-DS mit rsnapshot durchführe (von mir aus auch ohne Verschlüsselung/SSH) oder mit dem DSM einen entsprechenden Sicherungs-Vorgang einrichte.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Der Linux-Rechner macht rsync (als Client).

Die DS macht Netzwersicherungsdienst (rsync als Server). Auf der DS wird in der /etc/rsyncd.conf eingetragen (Module), was der Client auf dem Server darf.

Der Client ruft beim Server an ... auf der DS wird nicht weiter gemacht. ssh brauchst in diesem Fall nicht, weil du ja einen rsync --deamon auf der DS (Server) laufen hast.

Der rsnapshot macht das auch mit dem rsync ... nur hat er für verschiedene Aufgaben mehrere rsync-Jobs und kann es auch mit Rechnern ohne rsync-Daemon (benutzt dann ssh).

Das was der rsnapshot macht, kannst aber auch selbst machen per crontab auf dem Linux-PC. Auch Mehrgenerationen-Backups sind dabei möglich.

Da du ja geschrieben hast, dass du es mit dem rsync schon hinbekommen hast, muss dir jetzt nur noch crontab-Jobs überlegen und für die verschiedenen Sicherungsläufe Module in die /etc/rsyncd.conf eintragen. Modul meint hier schlicht ein Sicherungsziel (Verzeichnis, Benutzer, Berechtungen usw.)

Itari
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
Leider kann ich mich mit dem Thema erst wieder richtig am Sonntag beschäftigen, dennoch schon mal so viel:

Ich habe letzthin in einem Wikibeitrag die Lösung mit rsync und PrivateKey geschrieben.
Als erstes musst du ssh so einrichten, dass du dich mit dem PrivateKey ohne PW anmelden kannst. Wenn das klappt sind die verbleibenden Anpassungen am rsnapshot relativ klein

Ich kenne diese Anleitungen. Ich habe auch auf der DS alles gemacht, bis zu dem Punkt, wo Putty ins Spiel kommt. Ich habe Putty weder auf der DS noch auf dem PC. Es bleibt also die Frage, wie erstelle ich die Keys mit puttygen oder ssh-gen (beide sind auf der DS installier)? Tipps wie "Wichtig: Du musst nicht den PubKey als File auf die DS legen. Sondern mit dem Inhalt von PubKey den String für ssh erstellen. Drum würde ich es mit Putty machen, dann kriegst du diesen String pfannenfertig geliefert." Helfen mir also nicht, sie irritieren mich eher...

Das was der rsnapshot macht, kannst aber auch selbst machen per crontab auf dem Linux-PC. Auch Mehrgenerationen-Backups sind dabei möglich.

Da du ja geschrieben hast, dass du es mit dem rsync schon hinbekommen hast, muss dir jetzt nur noch crontab-Jobs überlegen und für die verschiedenen Sicherungsläufe Module in die /etc/rsyncd.conf eintragen. Modul meint hier schlicht ein Sicherungsziel (Verzeichnis, Benutzer, Berechtungen usw.)

Das klingt gut. Wie aber soll ich das, was rsnapshot leistet, nämlich unveränderte Dateien durch Links zu ersetzen, selber machen? Wie bekomme ich sonst mit mehreren rsync-Aufrufen Generationsbackups hin? Kann man vom PC aus rsync von Deamon-Modul1 auf der DS zu Deamon-Modul2 auf der DS machen? Ansonsten bleibe ich bei täglichen, wöchentlichen und monatlichen Backups hängen. Ich habe also max. eine 1 Monat alte Sicherungen und dazwischen ein 1 Woche altes Backup und das von Gestern...
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
@wired
Sorry war nicht meine Absicht dich zu irritieren. putty-gen und putty laufen bei mir auf dem Client, drum stellte sich mir nie die Frage den Schlüssel direkt auf der DS zu erstellen. Wenn du die Schlüssel auf der DS erstellen willst, dann sollte das mit den folgenden Kommandos gehen
Code:
openssl genrsa -out ./private.key 1024
openssl rsa -in ./private.key -pubout > ./public.key
Eine wirklich gute Seite für die Verwendung von openssl (http://www.madboa.com/geek/openssl/)
Allerdings kannst du dann den Inhalt von public.key nicht 1:1 in die authorized_keys Datei von root auf dem Server einfügen
Ein PublicKey-Eintrag muss in authorized_keys auf eine Zeile, aber in public.key wurden Zeilenumbrüche beim Generieren des Schlüssels eingefügt (die muss man erst entfernen)
Eine Zeile könnte so ausschauen
Code:
ssh-rsa MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8Mhkg6cmX4htmsFCrjWFgCquyyLdlURVGLJa0HyLSCMkarOZrBFPAx4IKupxs0yZ90FEYpyDEEKKPE0DAKBVqGFWq2s9D/AZhVHyZDSTdPtoOMESxOxcFJTp6Ii75KbdYzpBGtcc++6tpDECld7z0N77oFuhfmNW+Wwi5SzP7fwIDAQAB= root@localnet
Der private.key muss auf den Client und dort beim Aufruf von rsnyc dem ssh Parameter mittels -i übergeben werden.
Zum Testen kannst du ja einfach mal eine ssh Verbindung probieren mit dem Keyfile. Wenn du sofort auf der Konsole landest, dann hat alles geklappt
Code:
ssh -i /path/private.key root@IP_DER_DS
danach kannst du eigentlich gleich mit rsync loslegen.

Gruss

tobi

p.s. es ist wichtig, dass die Rechte für authorized_keys und dessen Elternverzeichnis .ssh korrekt gesetzt sind. Sonst legt sich sshd sofort quer. Das Verzeichnis muss chmod 0700 und das File chmod 0600 sein
 
Zuletzt bearbeitet:

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
Herzlichen Dank für die Erklärungen.

Gerade das Beispiel für authorized_keys hat mir sehr geholfen! (ich vermisse schmerzlich ein Beispiel für den Parameter backup in der rsnapshot Erklärung im Wiki. Die Erklärungen in der Man-Page überfordern mich mal wieder.)

Vorher bleibe ich aber leider schon hängen: da ich ja von PC auf die DS mit rsnapshot speichern will, muss rsnapshot ja auf der DS gestartet werden und demnach SSH auf dem PC installiert werden, richtig? Ich will das ganze nicht als root sondern user machen.

Also muss doch authorized_keys auf der DS und authorized_keys.pub auf dem PC speichern, jeweils mit user:user, richtig?

Dann muss ich .ssh/authorized_keys in /etc/ssh/sshd_config auf dem PC eintragen?

Nun habe ich mit openssl genrsa -out ./private.key 1024 und openssl rsa -in ./private.key -pubout > ./public.key private.key und public.key erstellt. Wunderbar.

Dann steht im Wiki: "Public Key auf der DS eintragen Zum Schluss muss man jetzt also diesen Public Key String in die authorized_keys Datei des jeweiligen Users bringen." Ich muss den public.key also in user/.ssh/authorized_keys auf dem PC eintragen? 1:1 ohne Zusätze? Ohne BEGIN PUBLIC KEY und END PUBLIC KEY, ok aber was ist mit den von Dir zitierten Zusätzen "ssh-rsa" und "root@localnet"? authorized_keys auf PC ist bei mir leer.

Der private.key muss auf den Client und dort beim Aufruf von rsnyc dem ssh Parameter mittels -i übergeben werden.

Das verstehe ich schon wieder nicht. :eek: In meinem Szenario ist doch die DS der Client?

Irgendwie habe ich den Eindruck, das ich mache das ganze unnötig kompliziert. Gibt es keine andere Möglichkeit als mit ssh rsnapshot im lan zu machen?
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Herzlichen Dank für die Erklärungen.

Gerade das Beispiel für authorized_keys hat mir sehr geholfen! (ich vermisse schmerzlich ein Beispiel für den Parameter backup in der rsnapshot Erklärung im Wiki. Die Erklärungen in der Man-Page überfordern mich mal wieder.)
Werde mal eine Ergänzung im Wikibeitrag machen

Vorher bleibe ich aber leider schon hängen: da ich ja von PC auf die DS mit rsnapshot speichern will, muss rsnapshot ja auf der DS gestartet werden und demnach SSH auf dem PC installiert werden, richtig? Ich will das ganze nicht als root sondern user machen.
rsnapshot muss auf jener Maschine laufen, die die Backupdaten speichert. In deinem Fall also auf der DS. Von der DS aus baut dann rsnapshot via rsync und ssh eine Verbindung zu deinem PC auf und holt sich die gewünschten Daten

Also muss doch authorized_keys auf der DS und authorized_keys.pub auf dem PC speichern, jeweils mit user:user, richtig?
Was ist denn authorized_keys.pub? Wenn das der Public Key ist, dann gehört dessen String in authorized_keys

Dann muss ich .ssh/authorized_keys in /etc/ssh/sshd_config auf dem PC eintragen?
authorized_key muss auf jener Kiste laufen auf die remote zugegriffen wird. In deinem Fall wie du sagst dein PC

Dann steht im Wiki: "Public Key auf der DS eintragen Zum Schluss muss man jetzt also diesen Public Key String in die authorized_keys Datei des jeweiligen Users bringen." Ich muss den public.key also in user/.ssh/authorized_keys eintragen? 1:1 ohne Zusätze? Ohne BEGIN PUBLIC KEY und END PUBLIC KEY?
Genau ohne Begin Public Key und End Public key. Aber mit den Ergänzungen aus meinem Vorgängerpost


Das verstehe ich schon wieder nicht. :eek: In meinem Szenario ist doch die DS der Client?
Stimmt die Begriffe Server und Client sind nicht immer so eindeutig. In deinem Bsp ist die DS der ssh Client und dein PC der ssh Server

Irgendwie habe ich den Eindruck, das ich mache das ganze unnötig kompliziert. Gibt es keine andere Möglichkeit als mit ssh rsnapshot im lan zu machen?
Doch es gäbe auch die Möglichkeit via rsync Module auf die Daten zuzugreifen. Allerdings ist das nicht so flexibel, weil du immer erst eine "Freigabe" (Modul) erstellen musst, ehe du ein Backup machen kannst (ausser du erstellst ein Modul mit dem Pfad / )
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
893
Punkte für Reaktionen
11
Punkte
44
Das mit den rsync-Deamon Modulen auf der DS mache ich ja. Ich will aber auch Generationskopien und da bietet sich ja rsnapshot an...

habe ich das mit der Verteilung der Schlüssel auf DS und PC richtig verstanden?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Das mit den rsync-Deamon Modulen auf der DS mache ich ja. Ich will aber auch Generationskopien und da bietet sich ja rsnapshot an...

habe ich das mit der Verteilung der Schlüssel auf DS und PC richtig verstanden?
Ich wollte damit nur sagen, dass du nicht unbedingt ssh brauchst. rsnapshot kann auch auf rsyncd Module zugreifen, ohne ssh zu nutzen. Würde dann allerdings voraussetzen, dass du auf deinem PC einen rsync Damon mit den entsprechenden Modulen laufen hast.

Bei deiner Frage nach den Schlüsseln bin ich ned ganz sicher, weil ich nicht verstanden habe was du in authorized_key.pub genau gespeichert hast. Aber grundsätzlich würde ich sagen, dass du das Prinzip verstanden hast. Nur gewisse Details sind wohl noch nicht ganz klar, aber dafür gibt es a dieses Forum ;)

Gruss

tobi
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat