Nutzer und Dienstkonten können öffentliche SSH-Schlüssel verwenden, um sich bei Secure Source Manager-Repositories zu authentifizieren. Auf dieser Seite wird beschrieben, wie Sie ein SSH-Schlüsselpaar generieren und es dann als Authentifizierungsmethode in der Secure Source Manager-Weboberfläche hinzufügen.
Secure Source Manager unterstützt die SSH-Schlüsseltypen RSA, ECDSA und Ed25519.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie für die Authentifizierung mit öffentlichen SSH-Schlüsseln benötigen:
-
So fügen Sie einen SSH-Schlüssel für einen Nutzer hinzu:
Auf Secure Source Manager-Instanzen zugreifende Person (
roles/securesourcemanager.instanceAccessor
) in der Secure Source Manager-Instanz -
So fügen Sie einen SSH-Schlüssel für ein Dienstkonto hinzu:
-
Manager von Secure Source Manager-Instanzen (
roles/securesourcemanager.instanceManager
) in der Secure Source Manager-Instanz -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) für das Dienstkonto
-
Manager von Secure Source Manager-Instanzen (
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die für die Authentifizierung mit öffentlichen SSH-Schlüsseln erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind für die Authentifizierung mit öffentlichen SSH-Schlüsseln erforderlich:
-
securesourcemanager.sshkeys.createAny
-
So weisen Sie einem Dienstkonto einen SSH-Schlüssel zu:
iam.serviceAccounts.actAs
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Informationen zum Zuweisen von Secure Source Manager-Rollen finden Sie unter Zugriffssteuerung mit IAM und Nutzern Instanzzugriff gewähren.
Schlüsselpaar generieren
Ein SSH-Schlüsselpaar besteht aus einem privaten Schlüssel, der sich auf Ihrem lokalen System befindet, und einem öffentlichen Schlüssel, den Sie bei Google Cloudregistrieren.
Linux oder macOS
Installieren Sie OpenSSH auf Ihrem lokalen System.
Geben Sie an einer Eingabeaufforderung den folgenden Befehl ein:
ssh-keygen -t [KEY_TYPE] -C "[USER_EMAIL]"
Dabei gilt:
[USER_EMAIL]
ist Ihre E-Mail-Adresse.[KEY_TYPE]
ist wahlweisersa
,ecdsa
odered25519
.
Beispiel:
ssh-keygen -t rsa -C "user@example.com"
Geben Sie bei Aufforderung einen Speicherort und einen Dateinamen für die öffentliche Schlüsseldatei ein. Wenn Sie den Standardspeicherort und ‑dateinamen übernehmen möchten, drücken Sie die Eingabetaste.
Lassen Sie die Passphrase leer und drücken Sie die Eingabetaste.
Windows
Installieren Sie PuTTY auf Ihrem lokalen System.
Starten Sie PuTTYGen über das Windows-Startmenü.
Wählen Sie im angezeigten Fenster den Schlüsseltyp im Feld Parameters (Parameter) aus.
Klicken Sie auf Generate (Erstellen).
PuTTYGen zeigt den generierten öffentlichen Schlüsselstring an.
Lassen Sie die Passphrase leer und drücken Sie die Eingabetaste.
Klicken Sie auf Save Public Key (Öffentlichen Schlüssel speichern) und Save Private Key (Privaten Schlüssel speichern), um das erzeugte Schlüsselpaar in Ihrem lokalen System zu speichern.
SSH-Schlüssel für Nutzer hinzufügen
- Klicken Sie in der Secure Source Manager-Weboberfläche auf der Instanz- oder Repository-Seite auf das -Menü Weitere Optionen.
Klicken Sie auf Nutzer-SSH-Schlüssel.
Die Seite Nutzer-SSH-Schlüssel wird geöffnet und eine Liste aller vorhandenen Schlüssel, die Sie erstellt haben, wird angezeigt.
Klicken Sie auf der Seite User SSH keys (SSH-Schlüssel für Nutzer) auf Add key (Schlüssel hinzufügen).
Geben Sie auf der Seite SSH-Schlüssel hinzufügen die folgenden Werte für Ihren Schlüssel ein:
- Titel: Fügen Sie einen aussagekräftigen Titel für den Schlüssel hinzu.
- Öffentlicher SSH-Schlüssel: Fügen Sie den String Ihres öffentlichen Schlüssels ein. Führen Sie den folgenden Befehl aus, um den String Ihres öffentlichen Schlüssels abzurufen:
cat ~/.ssh/FILENAME.pub
Dabei ist
FILENAME
der Name, den Sie der Schlüsseldatei gegeben haben.
Sie können SSH-Schlüssel verwenden, um sich bei jedem Secure Source Manager-Repository zu authentifizieren, sofern Sie die erforderlichen Berechtigungen für dieses Repository haben.
SSH-Schlüssel für Dienstkonten hinzufügen
Wenn Sie programmatischen Zugriff auf Ihr Repository zulassen möchten, können Sie einen SSH-Schlüssel für ein Dienstkonto hinzufügen.
- Wenn Sie noch kein Dienstkonto haben, das Sie verwenden möchten, erstellen Sie ein Dienstkonto.
- Klicken Sie in der Secure Source Manager-Weboberfläche auf das Dreipunkt-Menü.
- Klicken Sie auf SSH-Schlüssel für Dienstkonten. Die Seite SSH-Schlüssel für Dienstkonten wird geöffnet und eine Liste aller vorhandenen Schlüssel, die Sie hinzugefügt haben, wird angezeigt.
- Klicken Sie auf der Seite SSH-Schlüssel für Dienstkonten auf Schlüssel hinzufügen.
Geben Sie auf der Seite SSH-Schlüssel für Dienstkonto hinzufügen die folgenden Werte für Ihren Schlüssel ein:
- Titel: Ein beschreibender Titel für den Schlüssel.
Dienstkonto: Die E-Mail-Adresse des Dienstkontos, für das Sie den SSH-Schlüssel verwenden möchten, im Format
SA_NAME@PROJECT_ID.iam.gserviceaccount.com
.Wo
SA_NAME
ist der Name des Dienstkontos.PROJECT_ID
ist die Projekt-ID des Projekts, in dem das Dienstkonto erstellt wurde.
Öffentlicher SSH-Schlüssel: Ihr öffentlicher SSH-Schlüssel. Informationen zum Generieren eines SSH-Schlüsselpaars finden Sie unter Schlüsselpaar generieren.
Wenn sich das Dienstkonto nicht im selben Projekt wie Ihre Secure Source Manager-Instanz befindet, weisen Sie dem Dienst-Agent von Secure Source Manager eine der folgenden Rollen oder Berechtigungen für das Dienstkonto zu, das Sie verwenden möchten:
iam.serviceAccounts.signJwt
-Berechtigung- Rolle „Ersteller von Dienstkonto-Token“ (
roles/iam.serviceAccountTokenCreator
)
Führen Sie den folgenden Befehl aus, um Ihrem Secure Source Manager-Dienstkonto eine IAM-Richtlinie hinzuzufügen und ihm die Rolle „Ersteller von Dienstkonto-Tokens“ zuzuweisen.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \ --member="serviceAccount:service-INSTANCE_PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"
Dabei ist SERVICE_ACCOUNT das Dienstkonto, das Sie verwenden möchten, und INSTANCE_PROJECT_NUMBER die Projektnummer Ihrer Secure Source Manager-Instanz.
SERVICE_ACCOUNT sollte entweder als numerische Dienstkonto-ID oder als E‑Mail-Adresse formatiert sein, z. B. 123456789876543212345 oder my-iam-account@somedomain.com.