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:
-
Zum Hinzufügen eines SSH-Schlüssels für einen Nutzer:
Secure Source Manager-Instanzzugriff (
roles/securesourcemanager.instanceAccessor) für die Secure Source Manager-Instanz -
Zum Hinzufügen eines SSH-Schlüssels für ein Dienstkonto:
- Secure Source Manager-Instanzmanager (
roles/securesourcemanager.instanceManager) für die Secure Source Manager-Instanz - Dienstkontonutzer (
roles/iam.serviceAccountUser) für das Dienstkonto
- Secure Source Manager-Instanzmanager (
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. Maximieren Sie den Abschnitt Erforderliche Berechtigungen , um die notwendigen Berechtigungen anzuzeigen, die erforderlich sind:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind für die Authentifizierung mit öffentlichen SSH-Schlüsseln erforderlich:
-
securesourcemanager.sshkeys.createAnyfür die Secure Source Manager-Instanz -
Zum Zuweisen eines SSH-Schlüssels zu einem Dienstkonto:
iam.serviceAccounts.actAsfür das Dienstkonto
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Informationen zum Zuweisen von Secure Source Manager-Rollen, siehe 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 Cloud registrieren Google Cloud.
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 wahlweise
rsa,ecdsaodered25519.
Beispiel:
ssh-keygen -t rsa -C "user@example.com"Geben Sie bei Aufforderung einen Speicherort und einen Dateinamen für die Datei mit dem öffentlichen Schlüssel ein. Drücken Sie die Eingabetaste, um den standardmäßigen Standort und den Standarddateinamen zu übernehmen.
Lassen Sie die Passphrase leer und drücken Sie die Eingabetaste.
Windows
Installieren Sie den OpenSSH-Client (in Windows 10 und höher enthalten) und Git for Windows auf Ihrem lokalen System, falls Sie sie noch nicht haben. In der folgenden Anleitung werden OpenSSH und Git for Windows verwendet.
Führen Sie in einer PowerShell- oder Eingabeaufforderung den folgenden Befehl aus:
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"Dabei gilt:
- USER_EMAIL ist Ihre E-Mail-Adresse.
- KEY_TYPE ist wahlweise
rsa,ecdsaodered25519.
Beispiel:
ssh-keygen -t rsa -C "user@example.com"Geben Sie bei Aufforderung einen Speicherort und einen Dateinamen für die Datei mit dem öffentlichen Schlüssel ein. Drücken Sie die Eingabetaste , um den Standardspeicherort und den Standarddateinamen (`%USERPROFILE%.ssh`) zu übernehmen.
Lassen Sie die Passphrase leer und drücken Sie die Eingabetaste.
SSH-Schlüssel zum SSH-Agent hinzufügen
Wenn Sie das generierte SSH-Schlüsselpaar verwenden möchten, fügen Sie Ihren Schlüssel zum SSH-Agent hinzu. Wenn Sie Ihren Schlüssel nicht am standardmäßigen Speicherort gespeichert haben, hilft das Hinzufügen zum SSH-Agent SSH, den Schlüssel zu finden.
Linux oder macOS
Starten Sie
ssh-agentim Hintergrund:eval "$(ssh-agent -s)"Der Befehl gibt die Prozess-ID (PID) des Agent zurück, z. B.:
Agent pid 3245Je nach Umgebung müssen Sie möglicherweise einen anderen Befehl verwenden, z. B.:
- Wenn Sie Root-Zugriff verwenden möchten, führen Sie
sudo -s -Haus, bevor Siessh-agentstarten. - Wenn Sie
ssh-agentdirekt ausführen möchten, verwenden Sieexec ssh-agent bashoderexec ssh-agent zsh.
- Wenn Sie Root-Zugriff verwenden möchten, führen Sie
Fügen Sie Ihren privaten SSH-Schlüssel zu
ssh-agenthinzu.ssh-add ~/.ssh/FILENAMEDabei ist
FILENAMEder Name Ihrer privaten Schlüsseldatei, z. B.id_rsaoderid_ed25519.
Windows
Starten Sie
ssh-agent.Wenn Sie Git Bash verwenden, starten Sie
ssh-agent:eval "$(ssh-agent -s)"Wenn Sie PowerShell oder die Eingabeaufforderung verwenden, starten Sie den Dienst
ssh-agent. Führen Sie in PowerShell Folgendes aus:Set-Service ssh-agent -StartupType Automatic; Start-Service ssh-agent
Fügen Sie Ihren privaten SSH-Schlüssel zu
ssh-agenthinzu.Wenn Sie Git Bash verwenden:
ssh-add ~/.ssh/FILENAMEWenn Sie PowerShell oder die Eingabeaufforderung verwenden:
ssh-add $env:USERPROFILE\.ssh\FILENAME
Dabei ist
FILENAMEder Name Ihrer privaten Schlüsseldatei, z. B.id_rsaoderid_ed25519.
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 SSH-Schlüssel für Nutzer.
Die Seite SSH-Schlüssel für Nutzer wird geöffnet und eine Liste aller vorhandenen Schlüssel, die Sie erstellt haben, wird angezeigt.
Klicken Sie auf der Seite SSH-Schlüssel für Nutzer auf 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 beschreibenden Titel für den Schlüssel hinzu.
Öffentlicher SSH-Schlüssel: Fügen Sie den String Ihres öffentlichen Schlüssels ein. Öffnen Sie die Datei mit dem öffentlichen Schlüssel (
FILENAME.pub) in einem Texteditor oder führen Sie einen der folgenden Befehle aus, um den String des öffentlichen Schlüssels zu erhalten:Linux oder macOS
cat ~/.ssh/FILENAME.pubWindows
cat $env:USERPROFILE\.ssh\FILENAME.pubErsetzen Sie
FILENAMEdurch den Namen Ihrer Schlüsseldatei.
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 Menü „ Weitere Optionen“.
- 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.comDabei gilt:
SA_NAMEist der Name des Dienstkontos.PROJECT_IDist 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's eine der folgenden Rollen oder Berechtigungen für das Dienstkonto zu, das Sie verwenden möchten:
- Berechtigung
iam.serviceAccounts.signJwt - Rolle „Dienstkonto-Token-Ersteller“ (
roles/iam.serviceAccountTokenCreator)
Führen Sie den folgenden Befehl aus, um Ihrem Secure Source Manager-Dienstkonto eine IAM-Richtlinie hinzuzufügen, mit der ihm die Rolle „Dienstkonto-Token-Ersteller“ zugewiesen wird.
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 ist die Projektnummer Ihrer Secure Source Manager-Instanz.
Die SERVICE_ACCOUNT sollte entweder als numerische Dienstkonto-ID oder als E-Mail-Adresse formatiert sein, z. B. 123456789876543212345 oder my-iam-account@somedomain.com.
- Berechtigung