(gelöst) rsync backup ohne Password über ssh

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Peter18
Beiträge: 97
Registriert: 14.12.2018 11:56:20

(gelöst) rsync backup ohne Password über ssh

Beitrag von Peter18 » 25.11.2019 12:21:25

Ein freundliches Hallo an alle,

ich möchte eine automatisches Backup über Netzwerk einrichten. Dazu habe ich einen User backup mit der Gruppe root und Password angelegt. Damit ich rsync mit der crontab automatisch starten kann, habe ich mit visudo die Zeile
"backup ALL = NOPASSWD: /usr/bin/rsync"
eingetragen. Nach der Beschreibung unter https://wiki.ubuntuusers.de/sudo/Konfiguration/ sollte es damit möglich sein das Programm ohne Password zu starten. Wenn ich es aber von Hand teste wird immer ein Password verlangt! Das Backup wird auf dem Rechner A gestartet und soll die Daten nach Rechner B sichern. Der User backup ist auf beiden Rechnern angelegt.

Meine Fragen:
  • Wo muß der User angelegt sein? Rechner A oder B?
  • Warum wird nach dem Password gefragt? Funktioniert NOPASSWD nur in der crontab?
Freundliche Grüße von der wolkigen Nordsee

Peter
Zuletzt geändert von Peter18 am 16.12.2019 14:55:44, insgesamt 1-mal geändert.

schwedenmann
Beiträge: 5528
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: rsync backup ohne Password über ssh

Beitrag von schwedenmann » 25.11.2019 12:33:38

Hallo


1. wieso brauchst du bei dem script überhaupt rootrechte, bzw. was, oder welchen Ordner willst du per rsync backupen ?

2.
Warum wird nach dem Password gefragt? Funktioniert NOPASSWD nur in der crontab?
Da ist noch ssh dazwischen :mrgreen: und mußt du eben für den logionaccount auf dem remote-PC das PW eingeben, wenn du nicht ssh per schlüsel verwendest.

mfg
schwedenmann

TomL

Re: rsync backup ohne Password über ssh

Beitrag von TomL » 25.11.2019 12:35:18

Peter18 hat geschrieben: ↑ zum Beitrag ↑
25.11.2019 12:21:25
ich möchte eine automatisches Backup über Netzwerk einrichten.
Eine gute Idee... Backups sind immer wichtig.
Dazu habe ich einen User backup mit der Gruppe root und Password angelegt.
Das solltest Du in Deinem eigenen Interesse auf gar keinen Fall tun.
Damit ich rsync mit der crontab automatisch starten kann, habe ich mit visudo die Zeile
"backup ALL = NOPASSWD: /usr/bin/rsync"
Und ich persönlich würde auch das nicht so tun.
Meine Fragen:
  • Wo muß der User angelegt sein? Rechner A oder B?
  • Warum wird nach dem Password gefragt? Funktioniert NOPASSWD nur in der crontab?
Das ist relativ einfach zu beantworten. Das laufende Programm muss über die Rechte verfügen, die Daten zu lesen und auf dem anderen Rechner zu schreiben. Läuft das Programm auf dem Backup-System, also sowas wie "polling", muss es entsprechende Lese-Rechte auf dem Rechner haben, wo die Daten liegen. Je nach Umfang des Backups, also ggf. auch Systemdateien, ist das problematisch und man sollte davon absehen. Vor diesem Hintergrund denke ich, dass irgend ein Client (was der pollende Rechner ja ist) keine zweifelhaften Rechte dergestallt haben sollte, dass er schlichtweg alles lesen darf.

Läuft das Programm (rsync) hingegen auf dem Rechner, der die Daten vorhält, siehts anders ... dann sollte das Programm unter einer UID laufen, die vollständige Leserechte hat.... und das Programm schreibt dann die Daten beim Sync auf den anderen Rechner, als Backup.

Ich würde Modell 2 bevorzugen und rsync auf dem Rechner laufen lassen, der die Daten vorhält. Gestartet wird es mit einer Service-Unit, die wiederum von einer Timer-Unit gestartet wird. Das läuft automatisch mit root-Rechten und es gibt keine Password-Abfragen, wenn das Programm somit automatisch gestartet wird. Und man spart sich dubiose Rechte-Vergaben, mit der man hinterher möglicherweise gar keine Kontrolle mehr über die Sicherheit und Integrität des Rechners hat.... und sich allein auf den Glauben verlassen muss, dass noch alles in Ordnung ist.

Um bei der SSH-Verbindung Login-PWd-Abfragen zu vermeiden, kann man mit pubkey-auth erreichen.

jm2c
Zuletzt geändert von TomL am 25.11.2019 14:39:31, insgesamt 1-mal geändert.

Benutzeravatar
MSfree
Beiträge: 10776
Registriert: 25.09.2007 19:59:30

Re: rsync backup ohne Password über ssh

Beitrag von MSfree » 25.11.2019 13:21:19

TomL hat geschrieben: ↑ zum Beitrag ↑
25.11.2019 12:35:18
Das ist relativ einfach zu beantworten. Das laufende Programm muss über die Rechte verfügen, die Daten zu lesen und auf dem anderen Rechner zu schreiben.
rsync läuft immer zweimal. Einmal auf dem Rechner, der gesichert werden soll und einmal auf dem Rechner, auf den das Backup geschrieben werden soll. Man hat also immer eine rsynv-Serverisntanz und einer rsync-Clientinstanz (sogar, wenn man rsync zum Kopieren von Verzeichnissen auf dem selben Rechner verwendet).

Ein rsync muß also das Recht haben die nötigen Datein von Rechner A zu lesen, der zweite rsync muß das Recht haben, die Daten auf Rechner B zu schreiben.

Der Transportweg zwischen den beiden rsyncs ist das Netzwerk, das man (optional) auch durch SSH tunneln kann. Man kann rsync aber auch direkt ausführen, dazu muß aber auf der Serverseite rsync als Daemon laufen und es sollte dort read-only eingerichtet sein. Ausserdem ist der direkte Weg nicht verschlüsselt, was aber im hauseigenen LAN eher unwichtig ist. Über öffentliche Netze sollte man allerdings durch SSH, also verschlüsselt, tunneln.

TomL

Re: rsync backup ohne Password über ssh

Beitrag von TomL » 25.11.2019 14:36:14

MSfree hat geschrieben: ↑ zum Beitrag ↑
25.11.2019 13:21:19
rsync läuft immer zweimal. Einmal auf dem Rechner, der gesichert werden soll und einmal auf dem Rechner, auf den das Backup geschrieben werden soll. Man hat also immer eine rsynv-Serverisntanz und einer rsync-Clientinstanz (sogar, wenn man rsync zum Kopieren von Verzeichnissen auf dem selben Rechner verwendet).
Das ist was ganz neues für mich.... was ich wirklich nicht wusste. Das hängt wahrscheinlich aber damit zusammen, dass rsync bei mir auch zwischen 2 Rechnern dennoch quasi-lokal läuft, weil der eine Rechner die Freigaben des anderen gemountet hat. Allerdings fällt es mir im Moment schwer mir vorzustellen, wie das technisch ohne Mounts laufen kann... denn auch wenn ich sshfs nehme, isses ja auch quasi nur ein Mount. Und andererseits, als bereits gestarteter Daemon auf der Gegenseite verstehe ich natürlich... aber wie rsync ohne Daemon auf der Gegenseite eine Instanz starten will, versteh ich leider nicht.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: rsync backup ohne Password über ssh

Beitrag von smutbert » 25.11.2019 15:00:17

Wie MSFree gesagt hat: Auf der anderen Seite wird rsync entweder per SSH gestartet (automatisch vom diesseitigen rsync) oder es läuft schon als Daemon.

TomL

Re: rsync backup ohne Password über ssh

Beitrag von TomL » 25.11.2019 15:05:52

Ist es richtig, wenn ich jetzt annehme, dass das aber nur dann gilt, wenn die rsync-Kommunikation zwischen den beiden Peers direkt auf der TCP/IP-Protokoll-Ebene der Netzwerkschicht läuft? Sofern nämlich ein mount dazwischen wäre, ist es meiner Meinung ja augenscheinlich ein rein lokaler Prozess (...bzw. zwei lokale Prozesse) :roll: :?:

Benutzeravatar
MSfree
Beiträge: 10776
Registriert: 25.09.2007 19:59:30

Re: rsync backup ohne Password über ssh

Beitrag von MSfree » 25.11.2019 15:54:19

TomL hat geschrieben: ↑ zum Beitrag ↑
25.11.2019 15:05:52
Ist es richtig, wenn ich jetzt annehme, dass das aber nur dann gilt, wenn die rsync-Kommunikation zwischen den beiden Peers direkt auf der TCP/IP-Protokoll-Ebene der Netzwerkschicht läuft?
Bei lokal laufendem rsync-Server und rsync-Client unterhalten sich die beiden rsyncs über stdin/stdout, also über eine Dateischnittstelle.

Bei einem SSH-Tunnel wird ein rsync-Server auf der Remote-Maschine gestartet, der ebenfalls über stdin/stdout mit dem rsync-Client spricht, wobei stdin/stdout vom SSH-Client/Server zur Verfügung gestellt wird.

Bei "echtem" rsync, also einem laufenden rsync-Daemon auf der Remotemaschine, läuft die Kommunikation über den Port 873.

TomL

Re: rsync backup ohne Password über ssh

Beitrag von TomL » 25.11.2019 15:57:30

Man lernt wirkich nie aus... es geht immer weiter..... :roll:

Danke@msfree :THX:

Peter18
Beiträge: 97
Registriert: 14.12.2018 11:56:20

Re: rsync backup ohne Password über ssh

Beitrag von Peter18 » 25.11.2019 18:11:46

Hallo smutbert, hallo TomL, hallo MSfree, hallo schwedenmann,

Dank Euch für Eure Antworten. Zunächst einmal der Rechner A ist server und B Client, wie von TomL empfohlen. as ganze ist in einem LAN hinter einem Router mit Firewall.

Ich bin noch ziemlich am Anfang mit Linux, daher wollte ich die Datensicherung erst mal in Betrieb haben und dann die Feinheiten angehen.

Ich bin davon ausgegangen, dass jemand der den User "backup" und dessen password kennen muss oder die eines anderen users, um diesen zu misbrauchen. Da NOPASSWD nur für rsync gilt, scheint mir das im LAN für den Anfang ausreichend sicher. Um erst mal wirklich alles sichern zu können hat backup Rootrechte erhalten. Da die Struktur sehr umfangreich ist, will ich sichergehen, dass nicht irgend ein Ordner root gehört!
TomL hat geschrieben: ↑ zum Beitrag ↑
25.11.2019 12:35:18
Das laufende Programm muss über die Rechte verfüge
Soweit ich weiß erbt ein Programm die Rechte vom User, oder nicht??
TomL hat geschrieben: ↑ zum Beitrag ↑
25.11.2019 12:35:18
Gestartet wird es mit einer Service-Unit, die wiederum von einer Timer-Unit gestartet wird. Das läuft automatisch mit root-Rechten und es gibt keine Password-Abfragen, wenn das Programm somit automatisch gestartet wird.
Wie geht das?? (Siehe oben)

Seltsamer Weise kann ich mich mit backup direkt anmelden, aber über SSH nicht!?!?!?!?

Wie kann ich rsync als Daemon Starten?

Grüße von der Nordsee

Peter

TomL

Re: rsync backup ohne Password über ssh

Beitrag von TomL » 25.11.2019 18:37:03

Peter18 hat geschrieben: ↑ zum Beitrag ↑
25.11.2019 18:11:46
Dank Euch für Eure Antworten. Zunächst einmal der Rechner A ist server und B Client, wie von TomL empfohlen.
Das gilt dann wohl für alle technischen szenarien. Die relevante Frage ist jetzt, in welcher Art und Weise ist der Client der Client vom Server? Wenn das via SSH gehen soll, hab ich keinen Rat, weil ich das in meinem Netz nicht so tue. Bei mir läuft das via Samba-Mounts und ggf. sshfs, weswegen der eigentliche Prozess eigentlich immer lokal ist. Der das Backup empfangende Server ist hier bei mir kein rsync-Daemon oder expliziter Backup-Server, sondern immer nur einfacher File-Server, egal ob das Tar-Archive oder via rsync synchroniserte Verzeichnisse sind. Die Freigaben sind i.ü.S. einfach zu lokalen Laufwerken gemountet.
Ich bin davon ausgegangen, dass jemand der den User "backup" und dessen password kennen muss oder die eines anderen users, um diesen zu misbrauchen. Da NOPASSWD nur für rsync gilt, scheint mir das im LAN für den Anfang ausreichend sicher. Um erst mal wirklich alles sichern zu können hat backup Rootrechte erhalten. Da die Struktur sehr umfangreich ist, will ich sichergehen, dass nicht irgend ein Ordner root gehört!
Ich kann das jetzt nur aus meiner Perspektive erläutern. Auf meinem zu sichernden System gibt es viele unterschiedliche User-Bezogene Berechtigungen, für die nur root selber umfassend Leseberechtigungen hat. Da es sich um ein privates System handelt, ich keine weitere Person/User autorisieren will bzw. muss (eben sowas wie einen Backup-Admin) und das Backup maschinell durchgeführt wird, laufen die Jobs auf meinem System immer unter root, eben damit nichts nicht gesichert wird. Das Script liegt auf der Maschine, ohne Änderungsberechtigung durch User, eine Service-Unit bzw. root-Cron-Job startet es, insofern läuft es immer unter UID 0 und hat keine Beschränkungen beim Lesen, und die Daten liegen danach 1:1 auf den sync-Zielen.... fertig... das wars.
Soweit ich weiß erbt ein Programm die Rechte vom User, oder nicht??
Ja, das Programm 'erbt' die Rechte des Users, der es startet... wenn man das so nennen will. Aber Linux ist nicht Windows, richtig vererbt wird dabei eigentlich nix ... insofern ziehe ich es vor zu sagen, es läuft unter der UID des Users der es gestartet hat, sofern danach kein Kontextwechsel veranlasst wird. Der Kernel macht nichts anderes, als die UID des Programms mit der zu vergleichen, worauf das Programm zugreifen will. Stimmt beides überein, ist der Zugriff erlaubt, wenn nicht, dann nicht. Lediglich root mit der UID 0 setzt diese Prüfung aus. Insofern ist es schwierig hier von "erben" zu sprechen... aber egal, das ist nicht so wichtig.

Ich würde nur nicht versuchen, Windows-Regeln auf Linux anzuwenden... das mag gut gehen, vielleicht aber auch nicht. Ich würde das lieber unter reiner Anwendung von Linux-Gegebenheiten umsetzen.... losgelöst von Erben, Windows-Gewohnheiten und bei diesem Punkt einem User für eine explizite Aufgabe. Wenn keine andere Person im Spiel ist, die beschränkt zu berechtigen ist und der Job sowieso root-Rechte benötigt, gibts auch keinen Grund einen virtuellen User dafür einzurichten... dann kann mans auch gleich durch root erledigen lassen. Linux hat da spannende andere Möglichkeiten.

Also wie gesagt, die für mich relevante Frage ist, erstellt eine Maschine ein Backup auf einem anderen System? Oder holt das andere System die Daten ab.... was für mich aber immer auch das Gefühl von Zufälligkeit oden von Vielleicht-Vergessen beinhalten würde. Ich lass auf meinem System, welches die zu sicherenden Daten enthält, den Backup-Prozess mit root-Rechten ausgestattet durchführen. Der andere Rechner ist dabei nur ein Fileserver, der Festplatten-Speicher als Ressource bzw. Freigabe zur Verfügung stellt... und dessen Freigabe gemountet wird.
Seltsamer Weise kann ich mich mit backup direkt anmelden, aber über SSH nicht!?!?!?!?
Wie gesagt, in einem privaten System mit einem einzigen verantwortlichen Admin find ich das nicht so gut. Aber egal... das steht ja nicht zur Debatte.
Wie kann ich rsync als Daemon Starten?
Ich habe noch nicht verstanden, ob Du das wirklich tun musst, bzw. ob das wirklich notwendig ist. Wenn alles innerhalb eines Netzes läuft, gehts imho einfacher via SSHFS oder Samba.... denke ich mal.

Benutzeravatar
MSfree
Beiträge: 10776
Registriert: 25.09.2007 19:59:30

Re: rsync backup ohne Password über ssh

Beitrag von MSfree » 25.11.2019 19:42:37

Peter18 hat geschrieben: ↑ zum Beitrag ↑
25.11.2019 18:11:46
Zunächst einmal der Rechner A ist server und B Client, wie von TomL empfohlen. as ganze ist in einem LAN hinter einem Router mit Firewall.
In dem Fall ist eine verschlüsselte Übertragung der Daten eigentlich nicht notwendig. Eine Lösung, die mit SSH arbeitet. ist also nicht wichtig. Viele Anleitungen im Internet beziehen sich trotzdem auf die Nutzung von rsync in Verbinung mit SSH, weil man damit auch Datenübertragung durch nicht vertrauenswürdige Netzwerke abdeckt. Im Zweifelsfall ist eine verschlüsselte Übertragung also gegeben. In deinem Fall sehe ich das jedoch nicht unbedingt.
Ich bin noch ziemlich am Anfang mit Linux, daher wollte ich die Datensicherung erst mal in Betrieb haben und dann die Feinheiten angehen.
Ich halte das Backup des kompletten Systems für sinnlos. Betriebssystem und Anwendungssoftware braucht man nicht sichern, die ist mindestens genauso schnell auch neu installiert.

Gerade, wenn das System nach ein paar Jahren z.B. wegen einer defekten Festplatte neu eingerichtet werden muß, sollte man lieber nicht das alte System restaurieren sondern das neueste nehmen. Wenn mein Server, der noch unter Debian 8 läuft, den Geist aufgibt, werde ich sicher nicht ein Backup mit Debian 8 zurückspielen sondern gleich Debian 10 oder sogar Debian 11 (was aber noch nicht den stabilen Zustand erreicht hat) nehmen.

Auch die meisten Dateien in den Home-Verzeichnissen der Benutzer braucht man nicht zu sichern. Einerseits sind diese oft genug sowieso nicht mit neueren Softwareversionen kompatibel und andererseits sind sie auch relativ schnell neu eingerichtet.

Man muß sich also Gedanken machen, was man wirklich sichern muß. Eine gute Idee ist z.B., die Liste der installierten Softwarepakete zu sichern, damit man diese bei einer Neuinstallation schnell zur Hand hat. Absolute Pflicht sind natürlich die Dateien, die unwiederbringlich sind. Dazu gehört die private Fotosammlung, Dokumente, Lebensläufe, eventuell die MP3-Sammlung etc.

Für mich ist das Was bei einer Sicherung die viel wichtigere Frage als das Wie. Und dann stellt man in der Regel schnell fest, daß 99% der Daten statisch sind, sich also nie ändern und daher auch nicht täglich gesichert werden müssen.
Wie kann ich rsync als Daemon Starten?
Auf dem zu sichernden Rechner:

Du mußt die Datei /etc/rsyncd.conf anlegen. Beispiel:

Code: Alles auswählen

timeout = 300
[beispiel]
path = /Unterverzeichnis/das/gesichert/werden/soll
comment = Beispielkonfiguration
max connections = 20
hosts allow = 192.168.42.0/24
hosts deny = *
use chroot = yes
list = true
uid = root
gid = root
read only = true
Der Name in eckigen Klammern (hier "beispiel") ist sozusagen der Freigabename, unter dem der sichernde Rechner das Verzeichnis ansprechen kann, das zu sichern ist. Im obigen Beispiel ist also das Verzeichnis "/Unterverzeichnis/das/gesichert/werden/soll" vom Client als "beispiel" ansprechbar.

der path ist das Verzeichnis, ab dem die "Freigabe" existiert. Ich würde hier aber nicht das root-Verzeichnis nehmen. Ein Komplettbackup ist (siehe oben) nicht unbedingt nötig.

hosts allow schränkt im Beispiel oben den IP-Aderssbereich auf Rechner ein, dessen IP mit 192.168.42 anfängt.

Der rsync-Daemon muß mit

Code: Alles auswählen

systemctl enable rsync.service
den Dienst einschalten, und mit

Code: Alles auswählen

systemctl start rsync.service
den Dienst starten.

Der sichernde Rechner kann dann mit

Code: Alles auswählen

rsync -av meinserver::beispiel /home/sicherung
eine erste Sicherung ziehen. "meinsever" ist hier mit dem Rechnernamen zu ersetzen, den du ansprechen willst. Die Sicherung wird dann nach /home/sicherung geschrieben.

rsync hat noch etliche weitere interessante Optionen, aber das geht jetzt erstmal zu weit.

TomL

Re: rsync backup ohne Password über ssh

Beitrag von TomL » 25.11.2019 20:05:46

MSfree hat geschrieben: ↑ zum Beitrag ↑
25.11.2019 19:42:37
Für mich ist das Was bei einer Sicherung die viel wichtigere Frage als das Wie. Und dann stellt man in der Regel schnell fest, daß 99% der Daten statisch sind, sich also nie ändern und daher auch nicht täglich gesichert werden müssen.
:THX:

Peter18
Beiträge: 97
Registriert: 14.12.2018 11:56:20

Re: rsync backup ohne Password über ssh

Beitrag von Peter18 » 26.11.2019 12:27:52

Hallo Thomas, hallo MSfree,

Dank Euch für Eure ausführlichen Antworten!

Ich bin noch im Experimentierstadium und sehe mir gern verschiedene Möglichkeiten an! (Den Begriff Vererbung habe ich vom Directory Service bei Novell und MS geliehen, ist aber nicht so eng zu sehen) Bei meinem Backup geht es nur um Daten, die von einem Novell-Server stammen. Die betreffende Platte ist unter "/media/platte1" gemounted. (Nicht Novell) Soweit ich gelesen habe macht rsync auch nicht immer ein vollständiges Backup, sondern sichert nur die Daten, die sich geändert haben. So möchte ich auch z.B. von meinem Entwicklungsordner (Software) zu unterschiedlichen Zeiten ein Backup machen, wie etwa alle Stunde um versehentlich beschädigte Dateien (wie der Cursor steht im falschen Fenster) wieder herstellen zu können.

Ich sammle daher auch Informationen "wie geht das" um dann die für mich beste Lösung auszusuchen. Auch die verschlüsselte Übertragung mit SSH interessiert mich, vielleicht kann ich sie nutzen um Daten via Internet auszutauschen.

Zunächst aber möchte ich eine automatische Datensicherung in Gang bringen. Da es beim automatischen Start aber keine Infos gibt, ob Fehler aufgetreten sind (oder ich noch nicht weiß wie es geht), wollte ich die Anweisung von Hand testen. Mit einem default-user (pi von Raspberry) ist mir das auch gelungen, aber nicht mit dem backup-user. Mein Samba ist auch noch nicht so ganz rund. So fehlten kürzlich der Gruppe das Recht zum Ausführen eines Programms, nachdem ich es umbenannt hatte.

Im Moment sehe ich noch keine Lösung für mein Problem, aber viele neue Ansätze. Wie ich den Daemon einsetzen kann ist mir noch nicht ganz klar, aber unter https://linux.die.net/man/1/rsync habe ich eine Beschreibung gefunden. (viel zu lesen) Warum die Sicherung ohne Passwort nicht geht möchte ich auch gern wissen (aus Interesse), ebenso warum das Passwort beim Backup-user nicht akzeptiert wird.

Grüße von der Nordsee

Peter

schwedenmann
Beiträge: 5528
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: rsync backup ohne Password über ssh

Beitrag von schwedenmann » 26.11.2019 13:01:59

Hallo


Versuch doch erstmal sowas

PC1 user schlagmichtot erstellen
PC2 User schlagmichtot erstellen

dann am PC1 als user schlagmichtot einloggen und dein rsyncscript aufrufen , dann solltest du das pw des user schlagmichtot auf PC2 eingeben müssen, bevor dein Script anfängt.

Dazu müssen natürlich die user schlagmichtot lese- und Schreibrechte auf den Quelordner und auf den Zielordner haben !

Du benötigst dann auch keien Rootrechte.

Wenn das klappt kannst du per cron und ssh experiemntieren.

mffg
schwedenmann

P.S.
Die UID auf PC1 und PC2 von user schlagmichtot sollten identisch sein, kann man aber beim erstellen angeben, die UID meine ich.

TomL

Re: rsync backup ohne Password über ssh

Beitrag von TomL » 26.11.2019 14:28:33

Peter18 hat geschrieben: ↑ zum Beitrag ↑
26.11.2019 12:27:52
Im Moment sehe ich noch keine Lösung für mein Problem, aber viele neue Ansätze.
Schau Dir mal mein Backup-Konzept an... das verfolgt exakt auch den von MSfree genannten Ansatz... das "Womit" ist tatächlich nämlich die letzte Entscheidung. http://www.thlu.de/extrabaki.html.

Das "Womit" habe ich am Ende mit einem eigenen Script lösen können, nach dem ich wusste, was ich überhaupt will. Das Script und die Beschreibung dazu ist im Artikel-Menu verlinkt. Das ist vielleicht nicht die Lösung für jedermann, aber es sollte allemal tauglich dazu sein, mit mehr Kenntnis und Grundlagen eine belastbare eigene Entscheidung treffen zu können.... egal, ob tar, rsync oder verschlüsselt extern Lagern die Lösung ist... in meinem Konzept findet alles 3 Berücksichtigung, weil alles 3 automatisch läuft. Meine Prämissen waren "Mannlos, Einfach, Sicher, autom. Reports, kompromisslose Eindeutigkeit und Sicherheit bei der Rekonstruktion von Daten im Notfall".

Peter18
Beiträge: 97
Registriert: 14.12.2018 11:56:20

Re: rsync backup ohne Password über ssh

Beitrag von Peter18 » 26.11.2019 14:39:56

Hallo schwedenmann,

Dank Dir.

Aber ich schlage niemanden tot :wink: . Spaß beiseite, genau so habe ich meinen User angelegt. Über Puty einloggen geht! Die Rootrechte waren auch nur dazu, dass ich beim ersten Mal mit sicherheit alles gesichert bekomme.
rsync rufe ich in der kommandozeile auf:
"sudo /usr/bin/rsync --delete --numeric-ids --bwlimit=1000 -azbv /media/platte1 backup@10.168.2.6:/media/platte1/Backup"
Ist vielleicht der Grund, dass ich kein Skript verwende? Wie müsste das aussehen? (noch nicht gemacht; fange grad an)

Grüße von der wolkigen Nordsee

Peter

Benutzeravatar
MSfree
Beiträge: 10776
Registriert: 25.09.2007 19:59:30

Re: rsync backup ohne Password über ssh

Beitrag von MSfree » 26.11.2019 15:41:16

Peter18 hat geschrieben: ↑ zum Beitrag ↑
26.11.2019 12:27:52
Soweit ich gelesen habe macht rsync auch nicht immer ein vollständiges Backup, sondern sichert nur die Daten, die sich geändert haben.
Das ist soweit auch richtig. nur des erste Backup muß notwendigerweise vollständig sein. Folgende rsyncs übertragen nur noch Änderungen. Aber hier muß man eben auch aufpassen, um vor bösen Überraschungen gefeit zu sein.

Nehmen wir an, du hast einen Dateibestand, der auch schon gesichert ist. Jetzt löscht man aus diesem Bestand eine Datei. Mit dem nächsten rsync besteht die Änderung eben genau darin, daß eine Datei gelöscht wurde, also wird sie auch aus dem Backup gelöscht.

Dieses Dilemma kann man durch geeignete Aufrufparameter von rsync umgehen, im einfachsten Fall verbietet man das Löschen von Dateien im Backup. Sollte man aber einen bestimmten Datenbestand wieder restaurieren müssen, ist die Information, daß Dateien eigentlich zu löschen waren, verloren gegangen.

Auch dagegen kann man etwas tun, indem man rsync so einrichtet, daß es Backups nicht einfach im Zielverzeichnis erzeugt, sondern eine aus Hardlinks bestehenden Kopie anlegt, die dann mit dem Änderungen "überschrieben" wird. Die Hardlinkkopie kostet nur wenig Speicherplatz, geht verhältnismässig schnell und erlaubt ein vollständiges Abbild des Bestandes zum Zeitpunkt des Backups, inklusive löschen von Dateien (im Vortagesbackup bleibt die jetzt gelöschte Datei also bestehen).

Den zuletzt genannten Ansatz verwende ich, um meinen Server mit 2TB Datenbestand täglich vollständig zu sichern. Das dauert im Schnitt 10 Minuten und ist über ein Shellskript, das letztlich rsync aufruft, realisiert, das auch noch ein Log mit Übertragungsinformationen erzeugt

Peter18
Beiträge: 97
Registriert: 14.12.2018 11:56:20

Re: rsync backup ohne Password über ssh

Beitrag von Peter18 » 26.11.2019 15:46:52

Hallo Thomas,

Dank auch Dir. Hatte nicht gesehen, dass es noch eine 2. Seite gibt. Da hab ich ja wieder was zum Lesen! Werde es mir zu Gemüte führen und die Skripte ansehen.

Grüße von der wolkigen Nordsee

Peter
Nach oben

Peter18
Beiträge: 97
Registriert: 14.12.2018 11:56:20

Re: rsync backup ohne Password über ssh

Beitrag von Peter18 » 26.11.2019 16:12:12

Hallo MSfree,

nochmals Dank!

Diese Problematik kenne ich. Es kommt mir darauf an, dass ich schnell auch auf einzelne Dateien zugreifen kann, daher kommt eine konventionelle Datensicherung oder ein Archiv nicht in Frage. Damit nicht versehentlich gelöschte Dateien verlohren sind, erstelle ich mehrere Datensicherungen. Eine Gesamtsicherung täglich gegen Mitternacht, eine Teilsicherung von Arbeitsbereichen wie Softwareentwicklung, Steuerunterlagen oder Privatverkäufe. Diese Teilsicherungen werden in kurzen Abständen, täglich und wöchentlich durchgeführt. Damit habe ich auch auf Daten Zugriff, die einige Tage zuvor versehentlich gelöscht, oder die beschädigt wurden, ohne es zu merken, weil der Cursor im falschen Fenster stand. Bei der Softwareentwicklung kann es etwas Aufwändig werden solche Fehler zu finden und zu beheben. Einen Punkt kann man schnell übersehen!

Ich hatte eigentlich ein Raid1 aufbauen wollen, der kleine Raspberry kam damit aber nicht zurecht, auch 2 Platten mochte er nicht und hat sich mit dem System in die ewigen Jagdgründe begeben. Vielleicht klappt das mit den 2 Platten an einem aktiven Hub. Vorläufig soll aber ein "Backup-Server" die Daten erhalten.

Grüße von der Nordsee

Peter

Benutzeravatar
MSfree
Beiträge: 10776
Registriert: 25.09.2007 19:59:30

Re: rsync backup ohne Password über ssh

Beitrag von MSfree » 26.11.2019 16:47:25

Peter18 hat geschrieben: ↑ zum Beitrag ↑
26.11.2019 16:12:12
Diese Problematik kenne ich. Es kommt mir darauf an, dass ich schnell auch auf einzelne Dateien zugreifen kann...
Genau dafür ist das Szenario, das ich mit den Hardlinks oben beschrieben hatte, da. Die Hardlinks braucht man nicht selbst anzulegen, das macht rsync mit entsprechenden Optionen selbst.

Ich lasse mein Backupskript täglich laufen und habe so seit mehr als einem halben Jahr täglich ein mit Datum bezeichnetes Unterverzeichnis, in dem sich eine volständige Kopie des Datenbestandes befindet. Bei Apple gab es sowas unter dem Namen TimeMachine, die das ganze aber noch graphisch hübsch aufbereitet hat. Damit man nicht täglich 2TB Platz, im Jahr also über 700TB, braucht, werden unveränderte Dateien nur einmal physikalisch auf dem Backupmedium gespeicher und nur auf den Tagesverzeichnissen verlinkt. Dadurch hält sich der Plattenplatzbedarf in Grenzen.
Ich hatte eigentlich ein Raid1 aufbauen wollen, der kleine Raspberry kam damit aber nicht zurecht,
Mir ist eine kleine Synology 218 zulaufen, da steckt auch ein 4-Kern ARM drin. Die hatte ein Bekannter über und hat sie mir vermacht. Die Dinger laufen ab Werk bereits mit Linux, bringen also auch rsync und SSH zum Andministrieren mit. Ich mußte dort nur 2 Platten reinstecken, mein Backupskript draufkopieren und das Skript als täglich laufenden Dienst aktivieren. Seither läuft das kleine Ding "in der Ecke". Und im Gegenastz zu einem Raspi ist dass keine Kabelverhau, kann echtes SATA und schaufelt über 100MByte/s über den GBit-Netzwerkport.

Das Skript stelle ich hier bei Interesse gerne zur Verfügung. Das ist keine Raketenwissenschaft, es ist aber sinnvoll, sowas vorher verstanden zu haben, statt nur blind irgendwelche Dinge aus dem Internet zu kopieren. Es setzt aber einen laufenden rsync-Daemon auf dem zu sichernden Rechner voraus. Auf SSH ließe sich das aber auch mit wenigen Handgriffen umstellen.

Peter18
Beiträge: 97
Registriert: 14.12.2018 11:56:20

Re: rsync backup ohne Password über ssh

Beitrag von Peter18 » 26.11.2019 17:40:38

Hallo MSfree,

Nochmals Dank! Auf Dein Angebot mit dem Script komme ich gern zurück. Das kann ich dann auf meinen Bedarf anpassen und sehe wie so etwas aussieht. Ein Tipp, was für SSH anzupassen ist wäre toll. By the way, mein backup user hat kein Homedirectory Kann das die Ursache für die Probleme sein?

Grüße von der Nordsee

Peter

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: rsync backup ohne Password über ssh

Beitrag von uname » 27.11.2019 12:25:59

Ich habe nicht alles gelesen. Aber was willst du mit "sudo"? Du kannst doch einfach den SSH-Zugriff per SSH-key auf "rsync" einschränken.

https://ramblings.narrabilis.com/using-rsync-with-ssh
https://www.thomas-krenn.com/de/wiki/Au ... %C3%A4nken

Natürlich ist hierbei die Frage ob du die zu backupenden Daten ziehst oder schiebst ;-)

Benutzeravatar
MSfree
Beiträge: 10776
Registriert: 25.09.2007 19:59:30

Re: rsync backup ohne Password über ssh

Beitrag von MSfree » 27.11.2019 14:46:15

Peter18 hat geschrieben: ↑ zum Beitrag ↑
26.11.2019 17:40:38
Auf Dein Angebot mit dem Script komme ich gern zurück.
Ich habe das Skript, das ich benutze, mit Kommentaren versehen und hier hochgeladen:
NoPaste-Eintrag40928
Ein Tipp, was für SSH anzupassen ist wäre toll.
Im wesentlichen muß man den rsync-Aufruf in Zeile 64 um die nötigen SSH-Parameter ergänzen. Das kann man machen, indem man sie dort direkt einträgt oder eine neue Variable im Kopf erstellt, die die Parameter beinhaltet. Diese Variable muß dann noch in den rsync-Aufruf mit eingefügt werden.

z.B.:

Code: Alles auswählen

SSHTRANSPORT=-e "ssh -l ssh-user -i /home/sshuser/.ssh/hostkey.rsa"
und dann statt (Zeile 64)

Code: Alles auswählen

rsync -av --link-dest=$PREV $SRC $BUS >> $LOG 2>&1
auf

Code: Alles auswählen

rsync -av $SSHTRANSPORT --link-dest=$PREV $SRC $BUS >> $LOG 2>&1
abändern.
mein backup user hat kein Homedirectory Kann das die Ursache für die Probleme sein?
Um Paßwörtern aus dem Weg zu gehen, brauchst du SSH-Schlüssel. Wie die erzeugt werden, erfährt man in der Anleitung zu ssh-keygen, die man mit man ssh-keygen auf der Kommandozeile lesen kann. Der private Schlüssel muß in das Home-Verzeichnis des Benutzers kopiert werden, der das Skript aufrufen soll. Um ein Home-Verzeichnis kommst du also nicht herum, es kann aber bis auf .ssh leer bleiben.

Das erste Backup wird je nach Datenumfang lange dauern. Die 2TB von meinem Server haben meiner Erinnerung nach so um die 7 Stunden benötigt. Die täglichen Änderungen sind dann aber typischerweise in 10 Minuten übertragen.

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: rsync backup ohne Password über ssh

Beitrag von Lord_Carlos » 27.11.2019 15:02:13

Peter18 hat geschrieben: ↑ zum Beitrag ↑
26.11.2019 16:12:12
Bei der Softwareentwicklung kann es etwas Aufwändig werden solche Fehler zu finden und zu beheben. Einen Punkt kann man schnell übersehen!
Da wuerde ich zusaetzlich noch git oder aehnliches einsetzten.
Gerade bei Softwareentwicklung bringt es einige Vorteile mit sich. Schnell zwischen versionen hin und her wechseln, ganz ohne Daten per hand zu kopieren.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Antworten