So erstellen Sie komprimierte verschlüsselte Archive mit tar und gpg
Es gibt viele Gründe, warum Sie komprimierte verschlüsselte Dateiarchive erstellen sollten. Möglicherweise möchten Sie ein verschlüsseltes Backup Ihrer persönlichen Dateien erstellen. Ein weiteres mögliches Szenario ist, dass Sie Inhalte privat über das Internet oder über den Cloud-Speicher mit einem Freund oder Kollegen teilen möchten. Tar.gz Dateien oder komprimierte Tarballs werden mit dem Befehl tar erstellt. Diese Tarballs sind so ziemlich das Standardformat für Archive unter GNU/Linux, jedoch sind sie nicht verschlüsselt. In den oben genannten Szenarien ist es oft wünschenswert, eine Verschlüsselung zu haben, um Ihre Daten zu schützen. Hier kommt gpg ins Spiel.
gpg ist ein sehr vielseitiges kryptografisches Tool, mit dem Sie Dateien verschlüsseln, E-Mails verschlüsseln und die Integrität signierter Dateien überprüfen können.
In diesem Tutorial lernen Sie:
- So erstellen Sie komprimierte Archive mit tar
- So erstellen Sie verschlüsselte komprimierte Archive mithilfe von Tar mit GPG in einer Pipeline
- um mehrere einzelne verschlüsselte Archive von Verzeichnissen zu erstellen
- Eine schnelle Dirty-Methode zum Kopieren dieser Archive über ein Netzwerk, indem Netcat zur Pipeline hinzugefügt wird
So erstellen Sie komprimierte verschlüsselte Archive mit tar und gpg
Verwendete Softwareanforderungen und Konventionen
Komprimiertes Archiv erstellen
Bevor wir uns mit dem Erstellen verschlüsselter Archive befassen, sehen wir uns an, wie man überhaupt komprimierte tar-Archive erstellt. Angenommen, Sie haben ein Verzeichnis mit dem Namen Ordner, das Sie archivieren möchten, geben Sie den folgenden Befehl ein
tar -cvzf folder.tar.gz folder
Das Flag -c wird verwendet, um das Archiv zu erstellen, -v wird für die ausführliche Ausgabe verwendet, damit wir visuelles Feedback haben, das uns darüber informiert, dass dies geschieht, und -z wird verwendet, um das Archiv so zu komprimieren, dass die Lebensgröße kleiner ist.
Um dieses Archiv später zu dekomprimieren und zu extrahieren, geben Sie den folgenden Befehl ein.
tar -xvzf folder.tar.gz
Das Flag -x wird verwendet, um das Archiv zu extrahieren, -v für das ausführliche Extrahieren und -z zum Dekomprimieren des Archivs.
Erstellen eines verschlüsselten Archivs
Nachdem wir nun das Erstellen eines Archivs mit tar überprüft haben, schauen wir uns an, wie wir ein verschlüsseltes Archiv erstellen können, indem wir gpg hinzufügen. Sie können wählen, ob Sie eine schlüsselbasierte Verschlüsselung, eine kennwortbasierte Verschlüsselung oder eine Kombination aus beidem verwenden möchten. Wir haben uns bereits in einem Artikel Wie man einzelne Dateien mit GPG verschlüsselt und entschlüsselt mit der Verwendung von schlüsselbasierter Verschlüsselung befasst, daher werden wir uns hier mit passwortbasierter Verschlüsselung befassen. Um ein verschlüsseltes komprimiertes Archiv eines Verzeichnisses mit dem Namen folder zu erstellen, geben Sie den folgenden Befehl ein.
tar -cvzf - folder | gpg -c > folder.tar.gz.gpg
Alle tar-Flags sind die gleichen wie in unserem vorherigen Beispiel. Der einzige Unterschied besteht darin, dass wir anstelle eines Dateinamens für unser Archiv im tar-Befehl angeben - damit wir die Ausgabe des tar-Befehls in gpg pipen können. Wir fahren dann damit fort, genau das zu tun, und das Flag -c von gpg zeigt an, dass wir die Datei mit einer symmetrischen Chiffre unter Verwendung einer Passphrase verschlüsseln möchten, wie wir oben angegeben haben. Schließlich leiten wir die Ausgabe mit > in eine Datei namens folder.tar.gz.gpg um. Nachdem Sie diesen Befehl eingegeben haben, werden Sie aufgefordert, die Passphrase einzugeben, die Sie zum Verschlüsseln der Daten verwenden möchten. Wenn Ihnen dieses Verhalten nicht gefällt und Sie es vorziehen, die Passphrase innerhalb des Befehls anzugeben, können Sie das Flag --passphrase nach -c hinzufügen, wie unten gezeigt.
Das Angeben einer Passphrase in der Befehlszeile mit der –passphrase ist aus mehreren Gründen weniger sicher. Das Passwort wird in Ihrem Bash-Verlauf (oder einer anderen Shell-Verlaufsdatei) gespeichert. Wenn Sie sich auf einem Mehrbenutzersystem befinden, kann es sein, dass andere Benutzer Ihr Kennwort beim Untersuchen laufender Prozesse sehen. Selbst wenn Sie der einzelne Benutzer eines Systems sind, könnte jede Software, die in der Lage ist, aktuell laufende Prozesse zu untersuchen, möglicherweise Ihre Passphrase protokollieren.
tar -cvzf - folder | gpg -c --passphrase yourpassword > folder.tar.gz.gpg
Um dieses Archiv später zu entschlüsseln, zu dekomprimieren und zu extrahieren, geben Sie den folgenden Befehl ein.
gpg -d folder.tar.gz.gpg | tar -xvzf -
Das Flag -d teilt gpg mit, dass wir den Inhalt der Datei folder.tar.gz.gpg entschlüsseln möchten. Wir leiten dies dann an den Befehl tar weiter. Das Flag -x wird verwendet, um das Archiv zu extrahieren, das von gpg eingespeist wird, -v ist für das ausführliche Extrahieren, -z ist für das Dekomprimieren des Archivs und -f - gibt an, dass die Datei, die nicht archiviert wird, per Pipe übergeben wird.
Erstellen Sie mehrere einzelne verschlüsselte Archive von Verzeichnissen
In den obigen Beispielen wird davon ausgegangen, dass wir ein einzelnes verschlüsseltes Archiv erstellen möchten, das auf einem einzigen Verzeichnis basiert. Was ist, wenn wir ein Verzeichnis mit mehreren Unterverzeichnissen haben, aber für jedes Verzeichnis ein separates verschlüsseltes Archiv erstellen möchten? Wir können eine bash for-Schleife verwenden, um dies zu erreichen. Wechseln Sie einfach mit cd in das Verzeichnis, das die Unterverzeichnisse enthält, für die Sie individuelle Archive erstellen möchten, und geben Sie den folgenden Befehl ein.
for i in * ; do tar -cvzf - "$i" | gpg -c --passphrase yourpassword > "$i".tar.gpg; done
Verschlüsselung von netcat-Archivübertragungen über das Netzwerk.
In einem Artikel Tipps & Tricks mit Netcat-Befehlen haben wir Ihnen gezeigt, wie Sie mit Netcat Verzeichnisse von einem Computer auf einen anderen über das Netzwerk übertragen können. In diesem Artikel haben wir darauf hingewiesen, dass eine solche Methode der Datenübertragung nicht sicher ist, da sie nicht verschlüsselt ist. Gpg kann verwendet werden, um dem Prozess eine Verschlüsselungsschicht hinzuzufügen. Nehmen wir an, dass der Computer, von dem Sie das Archiv kopieren möchten, den Hostnamen host1 hat, der Computer, auf den Sie die Daten kopieren möchten, den Hostnamen host2 hat und das Verzeichnis, das wir übertragen möchten, den Namen folder hat.
Geben Sie auf host1 Folgendes ein
tar -cvzf - folder | gpg -c | nc -l 6666
Nachdem Sie diesen Befehl eingegeben haben, werden Sie aufgefordert, die Passphrase einzugeben, die Sie zum Verschlüsseln der Daten verwenden möchten.
Geben Sie nun auf host2 den folgenden Befehl ein
nc host1 6666 | gpg -d | tar -xvzf -
Nachdem Sie diesen Befehl eingegeben haben, werden Sie aufgefordert, die Passphrase einzugeben, die Sie im vorherigen Schritt ausgewählt haben. Sie sollten nun das gesamte Ordnerverzeichnis im aktuellen Arbeitsverzeichnis von host2 haben.
Das obige Beispiel erledigt die Arbeit, wenn Sie verschlüsselte Daten über das Netzwerk kopieren müssen, aber die Verwendung von scp aus der OpenSSH-Suite ist eine viel bessere Option, wenn es entweder auf Ihrem System installiert ist oder Sie über die erforderlichen Berechtigungen verfügen, um es zu installieren. Fühlen Sie sich frei, diesen Trick in Ihrer Gesäßtasche zu behalten, wenn Sie jemals in eine Situation geraten, in der dies nicht der Fall ist.
Schlussfolgerung
In diesem Artikel haben wir besprochen, wie man komprimierte tar-Archive erstellt, wie man sie verschlüsselt, wie man mehrere einzelne verschlüsselte Archive von Verzeichnissen erstellt, und wir haben auch eine schnelle und schmutzige Methode zum Kopieren verschlüsselter Archive über ein Netzwerk gelernt, indem man netcat zur Pipeline hinzufügt. Nicht zuletzt ist es offensichtlich, dass wir durch die Kombination dieser GNU/Linux-Werkzeuge Ergebnisse erzielen, die größer sind als die Summe ihrer Teile.
