Zum Inhalt

Git-Commit mit Signierung

Erstellen Ihres primären Schlüsselpaares

  1. Starten Sie den Assistenten zur Schlüsselpaargenerierung
gpg --full-generate-key --expert
  1. Wählen Sie für den Schlüsseltyp die Option (9) ECC and ECC

  2. Wählen Sie Option (1) Curve 25519 für die elliptische Kurve

  3. Legen Sie eine Gültigkeitsdauer Ihrer Wahl fest, idealerweise weniger als 1 Jahr

  4. 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.com gesetzt sein.

  5. Geben Sie eine Passphrase ein (zweimal)

Erstellen eines Signaturschlüsselpaares

  1. Fügen Sie einen Signatur-Unterschlüssel hinzu
gpg --expert --edit-key my@email.addr
gpg> addkey
  1. Wählen Sie für den Schlüsseltyp die Option (10) ECC (sign only).

  2. Wählen Sie Option (1) Curve 25519 für die elliptische Kurve

  3. Legen Sie eine Gültigkeitsdauer Ihrer Wahl fest, idealerweise weniger als 1 Jahr

  4. Bestätigen Sie die Eingabeaufforderungen und geben Sie eine Passphrase ein (zweimal)

  5. 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

  1. Export aller Unterschlüssel des neuen Schlüsselpaares in eine Datei
gpg --export-secret-subkeys my@email.addr > $HOME/.gnupg/subkeys
  1. Primärschlüssel aus dem Schlüsselbund löschen – SICHERN SIE ZUERST IHR PRIMÄRES KEYPAAR!
gpg --delete-secret-key my@email.addr
  1. Die zuvor exportierten Schlüssel erneut importieren
gpg --import $HOME/.gnupg/subkeys
  1. Suchen Sie in der Ausgabe nach sec# anstelle von sec – 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

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

Contributors: Lukas Magauer