Fehler beheben

Auf dieser Seite erfahren Sie, wie Sie Probleme mit Secure Source Manager beheben.

Fehlermeldung beim Erstellen eines Repositorys

Der folgende Fehler wird angezeigt, wenn Sie versuchen, ein Repository zu erstellen:

There was an error while loading /repo/create. Try refreshing the page.

Dieses Problem tritt auf, wenn:

  • die Secure Source Manager API in Ihrem Projekt nicht aktiviert ist.
  • Sie nicht die Rolle „Repo-Administrator“ für Ihr Projekt haben oder nicht berechtigt sind, Repositorys in der Secure Source Manager-Instanz zu erstellen.

So beheben Sie das Problem:

  • Aktivieren Sie die Secure Source Manager API in Ihrem Projekt.
  • Bitten Sie Ihren Administrator, Ihnen die folgenden Rollen zu gewähren:
    • Rolle „Repo-Administrator“ (roles/securesourcemanager.repoAdmin) für Ihr Projekt.
    • Rolle „Instanz-Accessor“ (roles/securesourcemanager.instanceAccessor) für die Secure Source Manager-Instanz.
    • Rolle „Ersteller von Instanz-Repositorys“ (roles/securesourcemanager.instanceRepositoryCreator) für die Secure Source Manager-Instanz.

Weitere Informationen finden Sie unter Zugriffssteuerung mit IAM.

Fehlermeldung beim Klonen eines Repositorys auf einem Mac

Der folgende Fehler wird angezeigt, wenn Sie versuchen, ein Repository zu klonen:

git: 'credential-gcloud.sh' is not a git command.  See 'git --help'.
fatal: Authentication failed for [repo-url]

Dieses Problem tritt auf, wenn:

  • die gcloud CLI mit Homebrew oder einer anderen nicht standardmäßigen Installation installiert wurde.
  • git-credential-gcloud.sh nicht zu Ihrem PATH hinzugefügt wurde.

So beheben Sie das Problem:

  • Führen Sie source $HOMEBREW_PREFIX/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc aus.
  • Prüfen Sie mit dem folgenden Befehl, ob git-credential-gcloud.sh in Ihrem Pfad enthalten ist:

    which git-credential-gcloud.sh
    

SSH-Verbindung schlägt mit dem Fehler „no matching“ fehl

Wenn Sie versuchen, Git-Vorgänge über SSH auszuführen, erhalten Sie möglicherweise eine der folgenden Fehlermeldungen:

  • Unable to negotiate with <host> port <port>: no matching key exchange method found.
  • Unable to negotiate with <host> port <port>: no matching cipher found.
  • Unable to negotiate with <host> port <port>: no matching MAC found.

Dieses Problem tritt auf, wenn Ihr SSH-Client die von Secure Source Manager benötigten kryptografischen Algorithmen nicht unterstützt. Das kann passieren, wenn Sie einen älteren SSH-Client verwenden oder Ihr Client nicht für die Verwendung unterstützter Algorithmen konfiguriert ist.

Für Secure Source Manager ist einer der folgenden Algorithmen erforderlich:

  • Schlüsselaustauschalgorithmen:curve25519-sha256, diffie-hellman-group14-sha256
  • Verschlüsselungen:chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
  • MACs: hmac-sha2-256-etm@openssh.com, hmac-sha2-256

Aktualisieren Sie Ihren SSH-Client auf eine aktuelle Version, die diese Algorithmen unterstützt, um dieses Problem zu beheben.

Git-HTTPS-Anfragen schlagen mit dem Fehler „permission denied“ oder „unauthorized“ fehl

Wenn Git-Befehle über HTTPS ausgeführt werden, wird eine Fehlermeldung „permission denied“ oder „unauthorized“ angezeigt.

Dieses Problem tritt auf, wenn eines der folgenden Ereignisse eintritt:

  • In der globalen Git-Konfigurationsdatei fehlt der Secure Source Manager-Authentifizierungshelfer.
  • Der integrierte Anmeldedatenspeicher von Git wird verwendet, anstatt den Secure Source Manager-Authentifizierungshelfer aufzurufen, um neue Anmeldedaten zu erhalten.
  • Ein Systemanmeldedatenhelfer wird verwendet, anstatt den Secure Source Manager-Authentifizierungshelfer aufzurufen, um neue Anmeldedaten zu erhalten.
  • Beim Interagieren mit Secure Source Manager-Repositorys über HTTPS wird eine ältere Version der Google Cloud CLI verwendet. Für Secure Source Manager ist die Google Cloud CLI-Version 395.0.0 oder höher erforderlich.

So beheben Sie das Problem:

  1. Führen Sie den folgenden Befehl aus, um den Inhalt Ihrer globalen Git-Konfiguration zu ermitteln.

    git config --list | grep credential
    
  2. Wenn Sie unter macOS eine Zeile wie *credential*.helper=store oder unter Windows eine Zeile wie credential.helper = manager sehen, entfernen Sie diese Zeilen und authentifizieren Sie sich dann mit gcloud auth login neu, bevor Sie den Git-Befehl noch einmal ausführen.

  3. Wenn die Antwort unter macOS oder Linux nicht credential.https://*.*.sourcemanager.dev.helper=gcloud.sh oder unter Windows nicht credential.https://*.*.sourcemanager.dev.helper=gcloud.cmd enthält, fügen Sie den Secure Source Manager-Authentifizierungshelfer Ihrer globalen Git-Konfiguration hinzu:

    Linux

    1. Führen Sie den folgenden Befehl aus, um den Secure Source Manager-Authentifizierungshelfer Ihrer globalen Git-Konfiguration hinzuzufügen:

      git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
      
    2. Prüfen Sie mit dem folgenden Befehl, ob die Zeile des Authentifizierungshelfers Ihrer globalen Git-Konfiguration hinzugefügt wurde:

      git config --list | grep credential
      

      Die Ausgabe sollte credential.https://*.*.sourcemanager.dev.helper=gcloud.sh enthalten.

    3. Authentifizieren Sie sich mit gcloud auth login.

    4. Führen Sie einen Git-Befehl aus, um die Authentifizierung zu testen.

    Windows

    1. Prüfen Sie Ihre gcloud CLI-Version anhand der Anleitung unter Git und die Google Cloud CLI installieren.
    2. Führen Sie den folgenden Befehl aus, um den Secure Source Manager-Authentifizierungshelfer Ihrer globalen Git-Konfiguration hinzuzufügen:

      git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd
      
    3. Prüfen Sie mit dem folgenden Befehl, ob die Zeile des Authentifizierungshelfers Ihrer globalen Git-Konfiguration hinzugefügt wurde:

      git config --list | grep credential
      

      Die Ausgabe sollte credential.https://*.*.sourcemanager.dev.helper=gcloud.cmd enthalten.

    4. Authentifizieren Sie sich mit gcloud auth login.

    5. Führen Sie einen Git-Befehl aus, um die Authentifizierung zu testen.

  4. Wenn Sie die Anmeldedaten für Ihren Git-Host zuvor auf gcloud.sh festgelegt haben, aber eine Fehlermeldung wie 'credential-gcloud.sh' is not a git command erhalten, kann Git das Skript git-credential-gcloud.sh nicht im PATH für Ihren Computer finden. Aktualisieren Sie Ihren PATH oder ersetzen Sie gcloud.sh in Ihrer gitconfig-Datei durch den absoluten Pfad.

Git-HTTPS-Anfragen schlagen mit dem Fehler „invalid token“ fehl

Für Git-HTTPS-Vorgänge ist ein gültiges OAuth-Token als Passwort erforderlich. Dies wird normalerweise vom Git-Anmeldedatenhelfer verarbeitet, kann aber auch mit OAuth-Tokens funktionieren, die mit anderen Methoden generiert wurden (z. B. Standardanmeldedaten für Anwendungen).

Wenn eine Git-Anfrage aufgrund eines ungültigen Tokens abgelehnt wird, bedeutet das normalerweise, dass Nutzerinformationen nicht aus dem eingehenden Token extrahiert werden konnten. Es gibt mehrere mögliche Ursachen für diesen Fehler:

  • Ihre gcloud CLI-Anmeldung ist möglicherweise abgelaufen.

    Melden Sie sich mit gcloud auth login noch einmal an.

  • Ihr Token hat nicht den erforderlichen Bereich. OAuth-Tokens müssen die folgenden Bereiche haben:

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/userinfo.email

    Sie können den Tokenbereich mit curl https://oauth2.googleapis.com/tokeninfo?access_token=${TOKEN} prüfen.

  • Sie verwenden ein Token, das aus der GKE-Flotten-Workload Identity generiert wurde:

  • Sie haben Organisationsrichtlinien, die die Verwendung von Tokens außerhalb bestimmter Perimeter verhindern, z. B. kontextsensitiver Zugriff.

    Setzen Sie die gcloud CLI-Konfigurationseigenschaft git_helper_use_adc auf true und aktualisieren Sie Ihre Standardanmeldedaten für Anwendungen, um dieses Problem zu beheben:

    1. Melden Sie sich mit „application-default“ an:

      gcloud auth application-default login
      
    2. Legen Sie die Eigenschaft git_helper_use_adc fest:

      gcloud