Erstellen Ihres primären Schlüsselpaares¶
-
Starten Sie den Assistenten zur Schlüsselpaargenerierung
``` gpg --full-generate-key --expert ``` -
Wählen Sie für den Schlüsseltyp die Option
(9) ECC and ECC -
Wählen Sie Option
(1) Curve 25519für die elliptische Kurve -
Legen Sie eine Gültigkeitsdauer Ihrer Wahl fest, idealerweise weniger als 1 Jahr
-
Geben Sie Ihren echten Namen und Ihre E-Mail-Adresse an, die diesem Schlüsselpaar zugeordnet werden sollen. Die E-Mail-Adresse muss mit Ihrer verifizierten GitHub-E-Mail-Adresse übereinstimmen oder auf
your-github-username@users.noreply.github.comgesetzt sein. -
Geben Sie eine Passphrase ein (zweimal)
Erstellen eines Signaturschlüsselpaares¶
-
Fügen Sie einen Signatur-Unterschlüssel hinzu
``` gpg --expert --edit-key my@email.addr gpg> addkey ``` -
Wählen Sie für den Schlüsseltyp die Option
(10) ECC (sign only). -
Wählen Sie Option
(1) Curve 25519für die elliptische Kurve -
Legen Sie eine Gültigkeitsdauer Ihrer Wahl fest, idealerweise weniger als 1 Jahr
-
Bestätigen Sie die Eingabeaufforderungen und geben Sie eine Passphrase ein (zweimal)
-
Speichern und Beenden
``` gpg> save ```
Erstellung eines Widerrufszertifikats¶
```
gpg --output my_email_addr.gpg-revocation-certificate --gen-revoke my@email.addr
```
Sicherungskopie Ihres Schlüsselpaares¶
Exportieren Sie das primäre Schlüsselpaar (bewahren Sie diese zusammen mit dem Widerrufszertifikat an einem sehr sicheren Ort auf)
```
gpg --export-secret-keys --armor my@email.addr > my_email_addr.private.gpg-key
gpg --export --armor my@email.addr > my_email_addr.public.gpg-key
```
Entfernen des primären Schlüsselpaares von Ihrem Schlüsselbund¶
-
Export aller Unterschlüssel des neuen Schlüsselpaares in eine Datei
``` gpg --export-secret-subkeys my@email.addr > $HOME/.gnupg/subkeys ``` -
Primärschlüssel aus dem Schlüsselbund löschen – SICHERN SIE ZUERST IHR PRIMÄRES KEYPAAR!
``` gpg --delete-secret-key my@email.addr ``` -
Die zuvor exportierten Schlüssel erneut importieren
``` gpg --import $HOME/.gnupg/subkeys ``` -
Suchen Sie in der Ausgabe nach
sec#anstelle vonsec– das Raute-Zeichen bedeutet, dass der Signatur-Unterschlüssel nicht im Schlüsselpaar aus dem Schlüsselring enthalten ist``` gpg --list-secret-keys $HOME/.gnupg/secring.gpg ```
Widerruf eines Signaturschlüsselpaares¶
Suchen Sie das primäre Schlüsselpaar und importieren Sie es (vorzugsweise in ein temporäres System wie einen Live-USB-Stick)
```
gpg --import /path/to/my_email_addr.public.gpg-key /path/to/my_email_addr.private.gpg-key
gpg --edit-key my@email.addr
gpg> revkey
[ passphrase twice ]
gpg> save
```
Erneuern Sie ein abgelaufenes oder demnächst ablaufendes Schlüsselpaar¶
```
gpg --edit-key my@email.addr
[select a key]
gpg> expire
[specify an expiration]
gpg> save
```
Einen einzelnen signierten Git-Commit erstellen¶
```
git commit -S -m "my awesome signed commit"
```
Konfigurieren Sie Git so, dass Commits immer mit einem bestimmten Schlüssel signiert werden¶
```
$ gpg --list-secret-keys --keyid-format=long # grab the fingerprint from the 'sec' line
git config [--global] commit.gpgsign true
git config [--global] user.signingkey DEADB33FBAD1D3A
```
Konfigurieren Sie VSCode so, dass Commits signiert werden¶
```
# User or workspace setting
"git.enableCommitSigning": true
```
Laden Sie Ihren öffentlichen Schlüssel auf einen Schlüsselserver hoch¶
```
gpg --keyserver pgp.mit.edu --send-keys 0xDEADB33FBAD1D3A
```
Überprüfen Sie, ob Ihr Schlüssel veröffentlicht wurde.¶
```
gpg --keyserver pgp.mit.edu --search-key my@email.addr
```
Referenzen¶
OpenPGP Best Practices
Github: Signing Commits
Braincoke's Log: Create a GPG Key
Creating the Perfect GPG Keypair
Digital Neanderthal: Generate GPG Keys With Curve Ed25519
Additional Information
If you have questions with respect to this content or to report concerns regarding the use or misuse content please do not hesitate to contact us at info@rockylinux.org.
Rocky Linux and the Rocky Enterprise Software Foundation (RESF) does not make any express or implied warranties, including but not limited to the warranties of non-infringement of any third party intellectual property rights. RESF does not warrant that any pending trademark applications for trademarks of RESF will result in any granted trademark protection. RESF shall not be liable for any claims relating to user's activities falling within the scope of the permission and user hereby agrees to indemnify, defend and hold RESF and its contributors harmless against any such claim.
This content is licensed under under Attribution-Share Alike 4.0 International license unless otherwise noted.
Author: Al Bowles