Informationen zur Signierung von Web-Commits
Wenn Sie das Signieren von Web-Commits aktivieren, verwendet GitHub Enterprise Server automatisch GPG, um Commits zu signieren, die Benutzer in der Weboberfläche von Ihre GitHub Enterprise Server-Instance erstellen. Von GitHub Enterprise Server signierte Commits erhalten 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.
Informationen über das Verifizieren einer persistenten Commitsignatur
Die persistente Commitsignaturverifizierung steht in Beziehung zur Webcommitsignierung, ist aber davon getrennt. Dieses Feature stellt sicher, dass der Verifizierungsstatus von Commits beibehalten wird, auch wenn Signaturschlüssel geändert oder widerrufen werden.
Die persistente Commitsignaturverifizierung trägt dazu bei, die langfristige Integrität und das Vertrauen in den Commitverlauf deines Repositorys aufrechtzuerhalten. Du kannst sie jedoch in Umgebungen deaktivieren, in denen die Datenträgerauslastung minimiert werden sollte, insbesondere für große Installationen mit einer großen Anzahl verifizierter Commits.
Informationen zum Deaktivieren der Überprüfung der dauerhaften Commitsignatur findest du unter Deaktivierung der persistenten Commit-Überprüfung.
Aktivierung der Web-Commit-Signierung
-
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
4096Bits ohne Ablauf. - Verwende
web-flowals Benutzernamen. Wennweb-flownicht verfügbar oder nicht verwendbar ist, verwende einen neuen eindeutigen Benutzernamen. Verwende diesen Benutzernamen in den folgenden Schritten in diesem Artikel. - Wenn Sie eine E-Mail-Adresse ohne Antwort in der VerwaltungskonsoleDatei definiert haben, verwenden Sie 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.
Bash sudo consul-template -once -template /etc/consul-templates/etc/nomad-jobs/gpgverify/gpgverify.hcl.ctmpl:/etc/nomad-jobs/gpgverify/gpgverify.hcl sudo 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 sudo nomad job run /etc/nomad-jobs/gpgverify/gpgverify.hcl -
Aktiviere die Web-Commit-Signierung.
Bash ghe-config app.github.web-commit-signing-enabled true
ghe-config app.github.web-commit-signing-enabled true -
Erstellen Sie auf Ihre GitHub Enterprise Server-Instance einen neuen Benutzer über integrierte oder externe Authentifizierung. Weitere Informationen finden Sie unter Grundlagen der 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 finden Sie unter Hinzufügen eines GPG-Schlüssels zu Ihrem GitHub Konto.
Hinweis
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 für GitHub Enterprise Server 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.
-
Klicke in der Randleiste „ Site admin“ auf Verwaltungskonsole.
-
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.
Hinweis
Das Feld „No-Reply-E-Mail-Adresse“ wird nur angezeigt, wenn Sie E-Mails für Ihre GitHub Enterprise Server-Instance aktiviert haben. Weitere Informationen finden Sie unter E-Mail für Benachrichtigungen konfigurieren.
-
Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.
Hinweis
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 privaten Schlüssels, der für die Web-Commit-Signierung verwendet wird.
-
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
4096Bits ohne Ablauf. - Verwende den Benutzernamen des Benutzers, der den Web-Commit signiert, z. B.
web-flow. - Verwenden Sie die in der Datei Verwaltungskonsole definierte No-Reply-E-Mail-Adresse, die dieselbe sein sollte wie die E-Mail-Adresse des Benutzers für die Signierung von Web-Commits, zum Beispiel
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.
Bash sudo consul-template -once -template /etc/consul-templates/etc/nomad-jobs/gpgverify/gpgverify.hcl.ctmpl:/etc/nomad-jobs/gpgverify/gpgverify.hcl sudo 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 sudo 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 finden Sie unter Hinzufügen eines GPG-Schlüssels zu Ihrem GitHub Konto.
Hinweis
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 Web-Commit-Signierung
Sie können die Web-Commit-Signatur 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