Skip to content

Restic - Passwortübergabe

Restic
  • 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

    Test-Script test.sh

        #!/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 😉

  • Restic v0.17.3 released

    Linux restic linux
    1
    0 Stimmen
    1 Beiträge
    147 Aufrufe
    Niemand hat geantwortet
  • Restic v0.17.2 released

    Restic restic linux
    1
    0 Stimmen
    1 Beiträge
    147 Aufrufe
    Niemand hat geantwortet
  • Debian Bookworm 12 - Restic

    Linux debian restic linux
    1
    0 Stimmen
    1 Beiträge
    174 Aufrufe
    Niemand hat geantwortet
  • Restic - Migrate

    Restic restic restic-ui
    1
    2
    0 Stimmen
    1 Beiträge
    247 Aufrufe
    Niemand hat geantwortet
  • Proxmox - Hetzner Storage Box in VM einbinden

    Proxmox proxmox restic rest-server
    1
    1
    0 Stimmen
    1 Beiträge
    2k Aufrufe
    Niemand hat geantwortet
  • Restic UI - mein zweites Python3 Projekt

    Python3 pyqt5 restic python3
    5
    0 Stimmen
    5 Beiträge
    880 Aufrufe
    FrankMF
    @berthold Hallo Berthold. Ich bin eigentlich immer noch nicht mit meinem Code zufrieden. Ist man das jemals? Da ich auch noch ein kleines Problem habe, würde ich da ungerne jemanden reinschauen lassen. Der Code ist stellenweise in deutsch kommentiert, stellenweise in englisch. Kennt man ja, man will es irgendwann mal ordentlich machen und dann kommt das nächste Problem auf einen zu. Hast Du Python3 Vorkenntnisse? Wenn Du "brennend" dran interessiert bist, könnte ich Dir evt. Zugang zu meinem Gitlab-Projekt geben. Wenn Du interessiert bist und ich dich nicht los werde :), dann schreib mir eine PN.
  • Rest-Server aufsetzen

    Angeheftet Restic rest-server restic linu
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    M
    @FrankM Hallo Frank, vielen Dank für deine Antwort. Die Clients greifen alle via REST-Schnittstelle auf den restic-Server zu. Da der restic-Server im append-only Modus läuft, können die Clients prinzipiell keine Snapshots entfernen, ihnen fehlt das Recht. Derzeit teste ich ein lokales, auf dem REST-Server liegendes Skript, welches per cron ausgeführt wird. Dieses Skript stellt eine lokale Verbindung zum REPO her, also nicht über die REST-Schnittstelle. Damit würde erstmal das Löschen älterer Snapshots funktionieren. Vielleicht hat ja noch jemand eine andere Idee??
  • Restic - Mounten der Sicherung

    Restic restic
    2
    0 Stimmen
    2 Beiträge
    368 Aufrufe
    FrankMF
    Bedingt durch einen Hardwareumbau und einer folgenden Neuinstallation, musste ich das Gestern mal live testen. Das klappt hervorragend Die Sicherung einbinden und dann gemütlich alles wieder zurück kopieren, was man braucht. Perfekt!