GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verschlüsseln und entschlüsseln Sie Dateien/Ordner in Linux mit GnuPG

Kürzlich hatte einer unserer Leser eine Frage:„Wie ver- und entschlüssele ich wenige Dateien/Ordner unter Linux, vorzugsweise CLI-basiert?“

Hier ist die Lösung: Zum Verschlüsseln und Entschlüsseln von Dateien verwenden wir GnuPG (GNU Privacy Guard) das ist das GNU-Tool zum Verschlüsseln und Signieren. GnuPG ist eine GPL-lizenzierte Implementierung des OpenPGP-Standards (Pretty Good Privacy), wie in RFC 4880 definiert. GnuPG selbst ist ein Befehlszeilentool ohne grafische Elemente. Es ist die eigentliche Krypto-Engine, die direkt von einer Eingabeaufforderung, von Shell-Skripten oder von anderen Programmen verwendet werden kann. Daher kann es als Backend für andere Anwendungen betrachtet werden.

Vorteile von GnuPG:

  • Bessere Funktionalität als PGP und einige Sicherheitsverbesserungen gegenüber PGP 2.
  • Entschlüsselt und verifiziert PGP 5, 6 und 7 Nachrichten.
  • Unterstützt ElGamal, DSA, RSA, AES, 3DES, Blowfish, Twofish, CAST5, MD5, SHA-1, RIPE-MD-160 und TIGER.
  • Einfache Implementierung neuer Algorithmen durch Erweiterungsmodule.
  • Unterstützt das Ablaufdatum von Schlüsseln und Signaturen.
  • Sprachunterstützung für Englisch, Dänisch, Niederländisch, Esperanto, Estnisch, Französisch, Deutsch, Japanisch, Italienisch, Polnisch, Portugiesisch (Brasilien), Portugiesisch (Portugiesisch), Russisch, Spanisch, Schwedisch und Türkisch.

In diesem Artikel werden wir die GnuPG-Installation, Verschlüsselung und Entschlüsselung von Dateien mit Passwort und Schlüsselpaar sehen.

Wie man GnuPG installiert

GnuPG würde auf den meisten Linux-Distributionen installiert werden. Führen Sie zur Überprüfung den folgenden Befehl aus:

[root@catest]# yum info gnupg

Wenn es die Installation bereits findet, müssen Sie sie nicht installieren, ansonsten installieren Sie sie mit yum (Sie wissen, wie man Yum konfiguriert).

[root@catest]#yum install gnupg

How to Encrypt a file in Linux using password – GnuPG

Befolgen Sie den folgenden Befehl, um eine Datei mit einer Passphrase zu verschlüsseln:

[root@catest]# gpg -c <filename>

Wenn Sie den obigen Befehl zum ersten Mal ausführen, wird .gnupg erstellt Verzeichnis in Ihrem Home-Verzeichnis. Unter .gnupg Verzeichnis zwei Dateien erstellt: gpg.conf, pubring.gpg & secring.gpg . gpg.conf ist die Standardkonfigurationsdatei, die gpg bei der Verschlüsselung und Entschlüsselung der Dateien berücksichtigen würde, pubring.gpg ist der öffentliche Schlüsselbund und secring.gpg ist der geheime Schlüsselbund.

Hier würde die Option -c gpg veranlassen, die Datei mit einer symmetrischen Verschlüsselung unter Verwendung einer Passphrase zu verschlüsseln. Die standardmäßig verwendete symmetrische Verschlüsselung ist CAST5, aber andere können mit der Option –cipher-algo ausgewählt werden.

Um eine Datei namens sample.txt zu verschlüsseln, führen Sie den folgenden Befehl aus:

[root@catest]# gpg -c sample.txt
Enter passphrase:<YOUR-SECRET-PASSWORD>
Repeat passphrase:<YOUR-SECRET-PASSWORD>

Der obige Befehl würde zur Bestätigung zweimal zur Eingabe der Passphrase auffordern und bei Erfolg würde es sample.txt.gpg erstellen, wobei auch die ursprüngliche sample.txt-Datei beibehalten wird. Es ist ratsam, die Originaldatei sample.txt zu löschen und nur die verschlüsselte Datei zu haben.

Hinweis:Sollten Sie jemals Ihre Passphrase vergessen, wäre es unmöglich, die Datei zu entschlüsseln!

So entschlüsseln Sie eine Datei unter Linux mit einem Passwort – GnuPG

Um eine bereits verschlüsselte Datei zu entschlüsseln, verwenden Sie den folgenden Befehl:

[root@catest ~]# gpg sample.txt.gpg
gpg: CAST5 encrypted data
Enter passphrase:

Das Ausführen des obigen Befehls würde zur Eingabe der Passphrase auffordern, um die Datei zu entschlüsseln. Bei Erfolg wird die verschlüsselte Datei entschlüsselt.

Wie man ein öffentlich-privates Schlüsselpaar generiert – GnuPG

Bevor Sie mit der Verschlüsselung mit Schlüsselpaar beginnen, sollten Sie zunächst mit dem folgenden Befehl ein privates/öffentliches GPG-Schlüsselpaar erstellen:

[root@catest ~]# gpg --gen-key

Folge den Anweisungen. Für einen ersten Test sollten die Voreinstellungen ausreichen. Etwas wie das Folgende wird angezeigt:

gpg (GnuPG) 1.4.5; Copyright (C) 2006 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

gpg: directory `/home/ramyasanthosh/.gnupg' created
gpg: new configuration file `/home/ramyasanthosh/.gnupg/gpg.conf' created
gpg: WARNING: options in `/home/ramyasanthosh/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/home/ramyasanthosh/.gnupg/secring.gpg' created
gpg: keyring `/home/ramyasanthosh/.gnupg/pubring.gpg' created
Please select what kind of key you want:
(1) DSA and Elgamal (default)
(2) DSA (sign only)
(5) RSA (sign only)
Your selection? 1
DSA keypair will have 1024 bits.
ELG-E keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0) 7
Key expires at Mon 30 Dec 2013 04:46:14 PM IST
Is this correct? (y/N) y

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
"Heinrich Heine (Der Dichter) <[email protected]>"

Real name: ramyasanthosh
Email address: [email protected]
Comment: Testing
You selected this USER-ID:
"ramyasanthosh (Testing) <[email protected]>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
You need a Passphrase to protect your secret key.

Enter passphrase:
Repeat passphrase:

Sie werden nach einer Passphrase für den Schlüssel gefragt. Es wird dringend empfohlen, einen starken zu verwenden. Es wird ohnehin nicht zum Verschlüsseln von Dateien benötigt, wird aber beim Entschlüsseln von Dateien benötigt.

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
.++++++++++....++++++++++.++++++++++++++++++++..+++++.+++++++++++++++++++++++++++++++++++..+++++.++++++++++++++++++++..+++++++++++++++..++++++++++>+++++.+++++......>+++++..+++++

Not enough random bytes available. Please do some other work to give
the OS a chance to collect more entropy! (Need 284 more bytes)

Sobald genügend zufällige Bytes verfügbar sind, werden die Schlüssel generiert. Aber genügend zufällige Bytes zur Verfügung zu stellen, ist keine ganz einfache Aufgabe. Die Lösung lautet also:

Lösung für „Nicht genügend zufällige Bytes verfügbar – GnuPG“

Wir alle wissen, dass es ziemlich mühsam ist, Entropie manuell für eine GPG-Schlüsselerstellung zu erzeugen. Wenn wir also rngd verwenden, werden wir Zufallsdaten vom Hardwaregerät an das Kernel-Zufallsgerät weitergeben, wie unten gezeigt:

[root@catest .gnupg]# ls -l /dev/urandom
cr--r--r-- 1 root root 1, 9 Oct 11 11:14 /dev/urandom
[root@catest .gnupg]# which rngd
/sbin/rngd
[root@catest .gnupg]# rngd -r /dev/random

Erstellen Sie dann Ihren GPG-Schlüssel und die Schlüssel werden wie unten gezeigt generiert:

++++++++++.++++++++++.+++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++.+++++.+++++++++++++++.+++++..+++++.+++++++++++++++.+++++++++++++++>+++++..+++++.+++++^^^^
gpg: /home/ramyasanthosh/.gnupg/trustdb.gpg: trustdb created
gpg: key 296A5510 marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   2  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 2u
pub   1024D/453697B4 2013-12-23
      Key fingerprint = 0511 6477 3F98 75AB 905D  0D05 BCBA 6C69 4536 97B4
uid                  ramyasanthosh (Testing) <[email protected]>
sub   2048g/D4EAC9A3 2013-12-23

Wie man öffentliche Schlüssel exportiert – GnuPG

Nachdem das Schlüsselpaar generiert wurde, exportieren wir den öffentlichen Schlüssel, der zur Verschlüsselung auf einem anderen Server verwendet werden soll, und übertragen dann die verschlüsselte Datei auf unseren ursprünglichen Server, um sie mit dem privaten Schlüssel zu entschlüsseln. Führen Sie zum Exportieren des öffentlichen Schlüssels den folgenden Befehl aus:

[root@catest .gnupg]# gpg --armor --output public-key.txt --export 'ramyasanthosh'

Hier ist „ramyasanthosh“ die UID, die während der Generierung des Schlüsselpaars verwendet wird.

How to Encrypt file using public key pair – GnuPG

Jetzt werden wir diesen öffentlichen Schlüssel verwenden, um die Datei auf einem anderen Server zu verschlüsseln, für den Sie zuerst den öffentlichen Schlüssel auf diesem System importieren müssen, wie mit dem folgenden Befehl gezeigt:

Mon Dec 23>$ gpg --import file-enc-pubkey.txt

Dann können Sie den öffentlichen Schlüssel sehen, der mit dem folgenden Befehl importiert wurde, um alle verfügbaren öffentlichen Schlüssel aufzulisten.

Mon Dec 23>$ gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub   1024D/453697B4 2013-12-23
uid                  ramyasanthosh (Testing) <[email protected]>
sub   2048g/D4EAC9A3 2013-12-23

Mit diesem öffentlichen Schlüssel werden wir nun eine Datei verschlüsseln:

Mon Dec 23>$ gpg --encrypt --recipient 'ramyasanthosh' sample.txt
pub  2048g/D4EAC9A3 2013-12-23 ramyasanthosh (Testing) <[email protected]>
 Primary key fingerprint: 0511 6477 3F98 75AB 905D  0D05 BCBA 6C69 4536 97B4
      Subkey fingerprint: 25C1 48E1 073A 7F61 BFFD  9D14 3F7E 939F D4EA C9A3

Anschließend finden Sie den Dateinamen sample.txt.gpg – Eine verschlüsselte Datei. Übertragen Sie die Datei auf den ursprünglichen Server, auf dem wir das Schlüsselpaar generiert haben.

Entschlüsseln einer Datei mit privatem Schlüssel – GnuPG

Jetzt werden wir die verschlüsselte Datei mit dem privaten Schlüssel mit dem folgenden Befehl entschlüsseln. Sie werden aufgefordert, die Passphrase einzugeben, die Sie zum Generieren des Schlüsselpaars verwendet haben.

[root@catest ~]# gpg --output sample.txt --decrypt sample.txt.gpg

You need a passphrase to unlock the secret key for
user: "ramyasanthosh (Testing) <[email protected]>"
2048-bit ELG-E key, ID D4EAC9A3, created 2013-12-23 (main key ID 453697B4)

Enter passphrase:

gpg: encrypted with 2048-bit ELG-E key, ID D4EAC9A3, created 2013-12-23
      "ramyasanthosh (Testing) <[email protected]>"

Das ist mit der Entschlüsselung erledigt und Sie würden die Originaldatei sample.txt finden.

So sichern Sie Ihren privaten Schlüssel – GnuPG

Es ist immer ratsam, dass Sie Ihren privaten Schlüssel sichern und niemals Ihre Passphrase vergessen! Befolgen Sie den folgenden Befehl, um Ihren privaten Schlüssel zu sichern:

[root@catest ~]# gpg --armor --output privatekey.asc --export-secret-keys 'ramyasanthosh'

Linux
  1. So verschlüsseln und entschlüsseln Sie Dateien und Verzeichnisse mit Tar und OpenSSL

  2. Verwenden von GPG zum Verschlüsseln und Entschlüsseln von Dateien unter Linux [Hands-on für Anfänger]

  3. So extrahieren Sie .gz- und .tar.gz-Dateien unter Linux

  4. wget vs curl:So laden Sie Dateien mit wget und curl herunter

  5. So komprimieren und dekomprimieren Sie .bz2-Dateien in Linux mit dem bzip2-Befehl

So sichern Sie Dateien und Verzeichnisse mit Rsync unter Linux

So öffnen Sie Dateien und Ordner als Administrator im Nautilus-Dateimanager unter Linux

So verstecken Sie Ordner und Dateien in Linux mithilfe einer Textdatei

So kopieren Sie Dateien und Verzeichnisse im Linux-Terminal

So verschlüsseln Sie Dateien unter Linux

So löschen Sie Dateien und Verzeichnisse mit der Linux-Befehlszeile