Es gibt in Restic mehrere Möglichkeiten, das Repository Passwort zu übergeben. Der normale Weg.
restic -r /tmp/repo backup /home/frank/Bilder
enter password for repository:
password is correct
Das Backup wird gestartet und man wird nach dem Repository Passwort gefragt. Für eine evt. Automatisierung ist das aber nicht so toll. Da Entwickler aber faul sind , hat man sich auch ein paar andere Dinge einfallen lassen.
restic -r /home/frank/b5 /home/frank/Bilder --password-file restic_pw.txt
oder
restic -r /home/frank/b5 backup /home/frank/Bilder --password-command SCRIPT
Übergabe mit --password-file
Das Passwort liegt dazu in einem File und wird mittels
--password-file
übergeben. Das Ergebnis sieht dann so aus.
frank@frank-MS-7C37:~$ restic -r /home/frank/b5 backup /home/frank/Bilder --password-file pw.txt
repository 87835251 opened successfully, password is correct
found 15 old cache directories in /home/frank/.cache/restic, run `restic cache --cleanup` to remove them
using parent snapshot 3171ef48
Files: 0 new, 0 changed, 160 unmodified
Dirs: 0 new, 2 changed, 14 unmodified
Added to the repo: 747 B
processed 160 files, 173.780 MiB in 0:00
snapshot 0f2b19e6 saved
Übergabe mit -password-command
#!/bin/sh
echo "123456"
Das wird dann mittels --password-command übergeben.
restic -r /home/frank/b5 backup /home/frank/Bilder --password-command /home/frank/test.sh
repository 87835251 opened successfully, password is correct
found 15 old cache directories in /home/frank/.cache/restic, run `restic cache --cleanup` to remove them
using parent snapshot 1b4adc5a
Files: 0 new, 0 changed, 160 unmodified
Dirs: 0 new, 2 changed, 14 unmodified
Added to the repo: 747 B
processed 160 files, 173.780 MiB in 0:00
snapshot 23677375 saved
Übergabe mit verschlüsseltem Passwort
Das obere Test Script habe ich mal verschlüsselt
gpg -c test.sh
Das Ergebnisfile heißt dann test.sh.gpg . Danach kann man dann das Test Script umschreiben.
#!/bin/sh
cd /tmp
gpg -d /home/frank/test.sh.gpg > schluessel.sh
chmod +x schluessel.sh
./schluessel.sh
rm schluessel.sh
Und wenn man jetzt das Restic Backup mit
restic -r /home/frank/b5 backup /home/frank/Bilder --password-command /home/frank/test.sh
aufruft, wird das PW aus dem verschlüsselten File benutzt.
frank@frank-MS-7C37:~$ restic -r /home/frank/b5 backup /home/frank/Bilder --password-command /home/frank/test.sh
gpg: AES256 verschlüsselte Daten
gpg: Verschlüsselt mit einer Passphrase
repository 87835251 opened successfully, password is correct
found 15 old cache directories in /home/frank/.cache/restic, run `restic cache --cleanup` to remove them
using parent snapshot d6226569
Files: 0 new, 0 changed, 160 unmodified
Dirs: 0 new, 2 changed, 14 unmodified
Added to the repo: 747 B
processed 160 files, 173.780 MiB in 0:00
snapshot 86ca3ca9 saved
Sollte der GPG Schlüsselbund nicht entsperrt sein, wird man nach seinem Passwort dafür gefragt.
Übergabe mittels stdin in Python Code
In meinem Restic UI habe ich das wie folgt gelöst.
result = subprocess.run(['restic',
'-r',
backup_data[row].repository,
'backup',
backup_data[row].source],
input=pass_word.pw[0],
check=False,
capture_output=True,
text=True)
Fazit
Eine Menge Möglichkeiten aus denen man anhand der Schwere seiner Datenparanoia auswählen kann