Informationen zur Webcommitsignierung
Wenn du die Webcommitsignierung aktivierst, verwendet GitHub Enterprise Server automatisch GPG zum Signieren von Commits, die Benutzer*innen auf der Webbenutzeroberfläche von Ihre GitHub Enterprise Server-Instance vornehmen. Die von GitHub Enterprise Server signierten Commits haben den Status „Verifiziert“. Weitere Informationen finden Sie unter Informationen zur Verifizierung einer Commit-Signatur.
Du kannst die Webcommitsignierung aktivieren, den für die Webcommitsignierung verwendeten privaten Schlüssel rotieren und die Webcommitsignierung deaktivieren.
Aktivieren der Webcommitsignierung
-
Erstelle in der Verwaltungsshell einen PGP-Schlüssel. Notiere dir die E-Mail-Adresse und die Schlüssel-ID.
Bash gpg --full-generate-key --pinentry-mode=loopback
gpg --full-generate-key --pinentry-mode=loopback
- Verwende den Standardschlüsseltyp und mindestens
4096
Bits ohne Ablauf. - Verwende
web-flow
als Benutzernamen. Wennweb-flow
nicht verfügbar oder nicht verwendbar ist, verwende einen neuen eindeutigen Benutzernamen. Verwende diesen Benutzernamen in den folgenden Schritten in diesem Artikel. - Wenn du eine No-Reply-E-Mail-Adresse in der Verwaltungskonsole definiert hast, verwende diese E-Mail-Adresse. Falls dies nicht der Fall ist, kannst du eine beliebige E-Mail-Adresse verwenden (z. B.
web-flow@my-company.com
). Die E-Mail-Adresse muss nicht gültig sein. - Der PGP-Schlüssel kann nicht durch eine Passphrase geschützt werden.
- Verwende den Standardschlüsseltyp und mindestens
-
Definiere den Schlüssel als Umgebungsvariable für GitHub Enterprise Server, und ersetze
<YOUR-KEY-ID>
durch die GPG-Schlüssel-ID.Bash ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
-
Aktualisiere die Einstellungen für den Commitsignierungsdienst von GitHub Enterprise Server.
Bash sudo consul-template -once -template /etc/consul-templates/etc/nomad-jobs/gpgverify/gpgverify.hcl.ctmpl:/etc/nomad-jobs/gpgverify/gpgverify.hcl nomad job run /etc/nomad-jobs/gpgverify/gpgverify.hcl
sudo consul-template -once -template /etc/consul-templates/etc/nomad-jobs/gpgverify/gpgverify.hcl.ctmpl:/etc/nomad-jobs/gpgverify/gpgverify.hcl nomad job run /etc/nomad-jobs/gpgverify/gpgverify.hcl
-
Aktiviere die Webcommitsignierung.
Bash ghe-config app.github.web-commit-signing-enabled true
ghe-config app.github.web-commit-signing-enabled true
-
Erstelle über die integrierte oder eine externe Authentifizierungsmethode einen neuen Benutzer auf Ihre GitHub Enterprise Server-Instance. Weitere Informationen finden Sie unter Informationen zur Identitäts- und Zugriffsverwaltung.
- Der Benutzername muss derselbe sein, den du oben in Schritt 1 beim Erstellen des PGP-Schlüssels verwendet hast, z. B.
web-flow
. - Auch die E-Mail-Adresse des Benutzers muss dieselbe sein, die du beim Erstellen des PGP-Schlüssels verwendet hast.
- Der Benutzername muss derselbe sein, den du oben in Schritt 1 beim Erstellen des PGP-Schlüssels verwendet hast, z. B.
-
Führe den folgenden Befehl aus, wobei du KEY-ID durch deine PGP-Schlüssel-ID ersetzt.
Bash gpg --armor --export KEY-ID
gpg --armor --export KEY-ID
-
Kopiere deinen PGP-Schlüssel, der mit
-----BEGIN PGP PUBLIC KEY BLOCK-----
beginnt und auf-----END PGP PUBLIC KEY BLOCK-----
endet. -
Melde dich bei GitHub Enterprise Server als der Benutzer an, der für die Webcommitsignierung erstellt wurde, z. B. als
web-flow
. -
Füge dem Benutzerprofil den öffentlichen PGP-Schlüssel hinzu. Weitere Informationen findest du unter Hinzufügen eines GPG-Schlüssels zu deinem GitHub-Konto.
Note
Entferne keine anderen öffentlichen Schlüssel aus der Liste der GPG-Schlüssel. Wenn ein öffentlicher Schlüssel gelöscht wird, werden alle mit dem entsprechenden privaten Schlüssel signierten Commits nicht mehr als überprüft gekennzeichnet.
-
Klicke in einem Verwaltungskonto auf GitHub Enterprise Server und dann in der rechten oberen Ecke einer beliebigen Seite auf „“.
-
Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.
-
Wähle auf der Randleiste „ Websiteadministrator“ die Option Verwaltungskonsole aus.
-
Klicke auf der Randleiste unter „Einstellungen“ auf E-Mail.
-
Gib unter „No-Reply-E-Mail-Adresse“ dieselbe E-Mail-Adresse ein, die du beim Erstellen des PGP-Schlüssels verwendet hast.
Note
Das Feld „No-reply email address“ wird nur dann angezeigt, wenn du die E-Mail-Adresse für Ihre GitHub Enterprise Server-Instance aktiviert hast. Weitere Informationen finden Sie unter E-Mail für Benachrichtigungen konfigurieren.
-
Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.
Note
Durch das Speichern von Einstellungen in der Verwaltungskonsole werden Systemdienste neu gestartet, was zu einer für den Benutzer feststellbaren Downtime führen könnte.
-
Warten Sie auf den Abschluss der Konfigurationsausführung.
Rotieren des für die Webcommitsignierung verwendeten privaten Schlüssels
-
Erstelle in der Verwaltungsshell einen PGP-Schlüssel. Notiere dir die E-Mail-Adresse und die Schlüssel-ID.
Bash gpg --full-generate-key --pinentry-mode=loopback
gpg --full-generate-key --pinentry-mode=loopback
- Verwende den Standardschlüsseltyp und mindestens
4096
Bits ohne Ablauf. - Verwende den Benutzernamen des signierenden Benutzers für den Webcommit, z. B.
web-flow
. - Verwende die in der Verwaltungskonsole definierte No-Reply-E-Mail-Adresse, die mit der E-Mail-Adresse des signierenden Benutzers für den Webcommit identisch sein sollte, z. B.
web-flow
. - Der PGP-Schlüssel kann nicht durch eine Passphrase geschützt werden.
- Verwende den Standardschlüsseltyp und mindestens
-
Definiere den Schlüssel als Umgebungsvariable für GitHub Enterprise Server, und ersetze
<YOUR-KEY-ID>
durch die GPG-Schlüssel-ID.Bash ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
-
Aktualisiere die Einstellungen für den Commitsignierungsdienst von GitHub Enterprise Server.
Bash sudo consul-template -once -template /etc/consul-templates/etc/nomad-jobs/gpgverify/gpgverify.hcl.ctmpl:/etc/nomad-jobs/gpgverify/gpgverify.hcl nomad job run /etc/nomad-jobs/gpgverify/gpgverify.hcl
sudo consul-template -once -template /etc/consul-templates/etc/nomad-jobs/gpgverify/gpgverify.hcl.ctmpl:/etc/nomad-jobs/gpgverify/gpgverify.hcl nomad job run /etc/nomad-jobs/gpgverify/gpgverify.hcl
-
Führe den folgenden Befehl aus, wobei du KEY-ID durch deine PGP-Schlüssel-ID ersetzt.
Bash gpg --armor --export KEY-ID
gpg --armor --export KEY-ID
-
Kopiere deinen PGP-Schlüssel, der mit
-----BEGIN PGP PUBLIC KEY BLOCK-----
beginnt und auf-----END PGP PUBLIC KEY BLOCK-----
endet. -
Melde dich bei GitHub Enterprise Server als der Benutzer an, der für die Webcommitsignierung erstellt wurde, z. B. als
web-flow
. -
Füge dem Benutzerprofil den öffentlichen PGP-Schlüssel hinzu. Weitere Informationen findest du unter Hinzufügen eines GPG-Schlüssels zu deinem GitHub-Konto.
Note
Entferne keine anderen öffentlichen Schlüssel aus der Liste der GPG-Schlüssel. Wenn ein öffentlicher Schlüssel gelöscht wird, werden alle mit dem entsprechenden privaten Schlüssel signierten Commits nicht mehr als überprüft gekennzeichnet.
Deaktivieren der Webcommitsignierung
Du kannst die Webcommitsignierung für Ihre GitHub Enterprise Server-Instance deaktivieren.
-
Führe in der Verwaltungsshell den folgenden Befehl aus.
Bash ghe-config app.github.web-commit-signing-enabled false
ghe-config app.github.web-commit-signing-enabled false
-
Wende die Konfiguration an.
Bash ghe-config-apply
ghe-config-apply