Problembehandlung beim Credential Helper und bei HTTPS Verbindungen zu AWS CodeCommit - AWS CodeCommit

AWS CodeCommit ist für Neukunden nicht mehr verfügbar. Bestandskunden von AWS CodeCommit können den Service weiterhin wie gewohnt nutzen. Erfahren Sie mehr“

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Problembehandlung beim Credential Helper und bei HTTPS Verbindungen zu AWS CodeCommit

Die folgenden Informationen können Ihnen helfen, häufig auftretende Probleme zu beheben, wenn Sie den Credential Helper, der im Lieferumfang von AWS CLI und enthalten ist, verwenden, HTTPS um eine Verbindung zu CodeCommit Repositorys herzustellen.

Anmerkung

Der Credential Helper ist zwar eine unterstützte Methode, um CodeCommit mithilfe von Federated Access, einem Identity Provider oder temporären Anmeldeinformationen eine Verbindung herzustellen, es wird jedoch empfohlen, das Programm zu installieren und zu verwenden. git-remote-codecommit Weitere Informationen finden Sie unter Einrichtungsschritte für HTTPS-Verbindungen zuAWS CodeCommitmitgit-remote-codecommit.

Ich erhalte eine Fehlermeldung, wenn ich den git config Befehl zur Konfiguration des Credential Helper ausführe

Problem: Wenn Sie versuchen, den Befehl Git config auszuführen, um den Credential Helper für die Kommunikation mit einem CodeCommit Repository zu konfigurieren, erhalten Sie eine Fehlermeldung, dass zu wenige Argumente vorhanden sind, oder eine Eingabeaufforderung, die Git-Konfigurationsbefehle und Syntax vorschlägt.

Mögliche Lösungen: Der häufigste Grund für diesen Fehler ist, dass entweder einfache Anführungszeichen für den Befehl auf einem Windows-Betriebssystem oder doppelte Anführungszeichen für den Befehl in einem Linux-, MacOS- oder Unix-Betriebssystem verwendet werden. Die korrekte Syntax lautet wie folgt:

  • Windows: git config --global credential.helper "!aws codecommit credential-helper $@"

  • Linux, macOS oder Unix: git config --global credential.helper '!aws codecommit credential-helper $@'

Beim Versuch, ein Repository zu klonen, wird beim Lesen des Benutzernamens ein Fehler angezeigt

Problem: Wenn Sie versuchen, ein Repository mit dem Credential Helper zu klonen, wird eine Fehlermeldung angezeigt, die besagt, dass das System den Benutzernamen für das Repository URL nicht lesen konnte.

Mögliche Lösungen: Der häufigste Grund für diesen Fehler ist, dass die .gitconfig-Datei auf Ihrem Computer nicht korrekt erstellt oder konfiguriert wurde. Öffnen Sie Ihre .gitconfig-Datei und stellen Sie sicher, dass der Credential Helper richtig eingestellt ist. Wenn Sie einen Computer verwenden, auf dem Linux, macOS oder Unix ausgeführt wird, stellen Sie außerdem sicher, dass der Wert von für Ihr System richtig eingestellt $HOME ist.

Zurückgegebene Fehlermeldung "Befehl nicht gefunden" unter Windows bei Verwendung des Hilfsprogramms für Anmeldeinformationen

Problem: Nach der AWS CLI Aktualisierung von schlagen Credential Helper-Verbindungen zu CodeCommit Repositorys fehl. aws codecommit credential-helper $@ get: aws: command not found

Ursache: Der häufigste Grund für diesen Fehler ist, dass Ihre AWS CLI Version auf eine Version aktualisiert wurde, die Python 3 verwendet. Es gibt ein bekanntes Problem mit dem MSI Paket. Um festzustellen, ob Sie über eine der betroffenen Versionen verfügen, öffnen Sie eine Befehlszeile und führen Sie den folgenden Befehl aus: aws --version

Wenn die Python-Version in der Ausgabe mit 3 beginnt, ist Ihre Version betroffen. Beispielsweise:

aws-cli/1.16.62 Python/3.6.2 Darwin/16.7.0 botocore/1.12.52

Mögliche Lösungen: Sie können dieses Problem mit einer der folgenden Maßnahmen umgehen:

  • Installieren und konfigurieren Sie das AWS CLI unter Windows mit Python und Pip anstelle von. MSI Weitere Informationen finden Sie unter Python, pip und the AWS CLI unter Windows installieren.

  • Bearbeiten Sie Ihre .gitconfig-Datei manuell, um den Abschnitt [credential] so zu ändern, dass er explizit auf aws.cmd auf Ihrem lokalen Computer verweist. Beispielsweise:

    [credential] helper = !"\C:\\Program Files\\Amazon\\AWSCLI\\bin\\aws.cmd\" codecommit credential-helper $@ UseHttpPath = true
  • Führen Sie den git config Befehl aus, um Ihre .gitconfig Datei so zu aktualisierenaws.cmd, dass sie explizit referenziert, und aktualisieren Sie Ihre PATH Umgebungsvariable manuell, sodass sie den Pfad zum Befehl nach Bedarf enthält. Beispielsweise:

    git config --global credential.helper "!aws.cmd codecommit credential-helper $@" git config --global credential.UseHttpPath true

Ich werde zur Eingabe eines Benutzernamens aufgefordert, wenn ich mich mit einem CodeCommit Repository verbinde

Problem: Wenn Sie versuchen, den Credential Helper für die Kommunikation mit einem CodeCommit Repository zu verwenden, wird eine Meldung angezeigt, in der Sie zur Eingabe Ihres Benutzernamens aufgefordert werden.

Mögliche Lösungen: Konfigurieren Sie Ihr AWS Profil oder stellen Sie sicher, dass das von Ihnen verwendete Profil das ist, mit dem Sie arbeiten möchten. CodeCommit Weitere Informationen zur Einrichtung erhalten Sie unter Einrichtungsschritte für HTTPS-Verbindungen zuAWS CodeCommitRepositorys auf Linux, macOS oder Unix mit demAWS CLIHelfer für Anmeldeinformationen oder Einrichtungsschritte für HTTPS-Verbindungen zuAWS CodeCommitRepositorien unter Windows mit demAWS CLIHelfer für Anmeldeinformationen. Weitere Informationen zu IAM Zugriffsschlüsseln und geheimen Schlüsseln finden Sie unter Zugriffsschlüssel für IAM Benutzer verwalten und Wie erhalte ich Anmeldeinformationen?

Git für macOS: Ich habe den Credential Helper erfolgreich konfiguriert, aber jetzt wird mir der Zugriff auf mein Repository verweigert (403)

Problem: Unter macOS scheint der Credential Helper nicht wie erwartet auf Ihre Anmeldeinformationen zuzugreifen oder diese zu verwenden. Dies kann durch zwei verschiedene Probleme verursacht werden:

  • Der AWS CLI ist für einen AWS-Region anderen konfiguriert als den, in dem das Repository existiert.

  • Das Schlüsselbund-Dienstprogramm (Keychain Access) hat Anmeldeinformationen gespeichert, die jetzt nicht mehr gültig sind.

Mögliche Lösungen: Um zu überprüfen, ob das für die richtige Region konfiguriert AWS CLI ist, führen Sie den aws configure Befehl aus und überprüfen Sie die angezeigten Informationen. Wenn sich das CodeCommit Repository in einem AWS-Region anderen Verzeichnis befindet als dem, das für die angezeigt wird AWS CLI, müssen Sie den aws configure Befehl ausführen und die Werte auf die Werte ändern, die für diese Region geeignet sind. Weitere Informationen finden Sie unter Schritt 1: Erstkonfiguration fürCodeCommit.

Die auf OS X und macOS veröffentlichte Standardversion von Git verwendet das Keychain Access-Hilfsprogramm, um generierte Anmeldeinformationen zu speichern. Aus Sicherheitsgründen ist das für den Zugriff auf dein CodeCommit Repository generierte Passwort temporär, sodass die im Schlüsselbund gespeicherten Anmeldeinformationen nach etwa 15 Minuten nicht mehr funktionieren. Wenn du nur mit auf Git zugreifst CodeCommit, versuche Folgendes:

  1. Geben Sie am Terminal den Befehl git config ein, um die Git-Konfigurationsdatei (gitconfig) zu finden, in der das Schlüsselbund-Dienstprogramm definiert ist. Abhängig von Ihrem lokalen System und Ihren Einstellungen haben Sie möglicherweise mehr als eine gitconfig-Datei.

    git config -l --show-origin | grep credential

    Suchen Sie in der Ausgabe dieses Befehls nach Ergebnissen, die den folgenden ähneln:

    file:/path/to/gitconfig credential.helper=osxkeychain

    Die am Anfang dieser Zeile aufgelistete Datei ist die Git-Konfigurationsdatei, die Sie bearbeiten müssen.

  2. Verwenden Sie zum Bearbeiten der Git-Konfigurationsdatei einen Texteditor, oder führen Sie den folgenden Befehl aus:

    nano /usr/local/git/etc/gitconfig
  3. Ändern Sie die Konfiguration mit einer der folgenden Strategien:

    • Kommentieren oder löschen Sie den Abschnitt mit den Anmeldeinformationen, der Folgendes enthälthelper = osxkeychain. Beispielsweise:

      # helper = osxkeychain
    • Aktualisieren Sie aws credential helper sowohl den Abschnitt als auch den Abschnitt osxkeychain Credential Helper, sodass sie einen Kontext haben. Es wird beispielsweise verwendet, um osxkeychain sich zu authentifizieren für: GitHub

      [credential "https://git-codecommit.us-east-1.amazonaws\.com"] helper = !aws --profile CodeCommitProfile codecommit credential-helper $@ UseHttpPath = true [credential "https://github.com"] helper = osxkeychain

      In dieser Konfiguration verwendet Git den osxkeychain Helper, wenn der Remote-Host mit "https://github.com" übereinstimmt, und den Credential-Helper, wenn der Remote-Host mit "https://git-codecommit\.us-east-1\.amazonaws.com" übereinstimmt.

    • Fügt vor dem Credential-Helper einen leeren String-Helper ein. Zum Beispiel, um den osxkeychain Helper nicht zu verwenden, wenn Sie das Profil mit dem Namen verwenden CodeCommitProfile mit demCLI:

      [credential] helper = helper = !aws --profile CodeCommitProfile codecommit credential-helper $@ UseHttpPath = true
      Tipp

      Sie könnten auch die Zeile nach der leeren Zeichenkettenhilfszeile so konfigurieren, dass sie nicht übereinstimmt, CodeCommit wenn Sie möchten, dass sie alle Profile ausschließt:

      helper = !aws codecommit credential-helper $@

    Wenn Sie andernfalls das Schlüsselbund-Dienstprogramm weiterhin verwenden wollen, um Anmeldeinformationen für weitere Git-Repositorys zu cachen, modifizieren Sie die Kopfzeile, anstatt die Zeile auszukommentieren. Um beispielsweise zwischengespeicherte Anmeldeinformationen für zuzulassen GitHub, könnten Sie den Header wie folgt ändern:

    [credential "https://github.com"] helper = osxkeychain

Wenn Sie mit Git auf andere Repositorys zugreifen, können Sie das Keychain Access-Hilfsprogramm so konfigurieren, dass es keine Anmeldeinformationen für Ihre CodeCommit Repositorys bereitstellt. So konfigurieren Sie das Schlüsselbund-Dienstprogramm (Keychain Access):

  1. Öffnen Sie das Schlüsselbund-Dienstprogramm. (Sie finden das Schlüsselbund-Dienstprogramm mit dem Finder.)

  2. Suchen und ersetzen git-codecommit.us-east-2.amazonaws.com us-east-2 mit dem AWS-Region Ort, an dem das Repository existiert. Markieren Sie die Zeile, öffnen Sie das Kontextmenü (klicken Sie mit der rechten Maustaste) und wählen Sie dann Get Info.

  3. Wählen Sie die Registerkarte Access Control aus.

  4. Wählen Sie unter Confirm before allowing access den Eintrag git-credential-osxkeychain aus und klicken Sie auf das Minuszeichen, um den Eintrag aus der Liste zu entfernen.

    Anmerkung

    Nachdem Sie git-credential-osxkeychain aus der Liste entfernt haben, wird bei jeder Ausführung eines Git-Befehls ein Dialogfeld eingeblendet. Klicken Sie zum Fortfahren auf Deny. Falls Sie diese Dialogfelder umgehen möchten, finden Sie hier einige Alternativen:

    • Stellen Sie eine Verbindung her, CodeCommit indem Sie SSH oder Git-Anmeldeinformationen verwenden, anstatt den Credential Helper mitHTTPS. Weitere Informationen finden Sie unter Für SSH-Verbindungen unter Linux, macOS oder Unix und Einrichtung für HTTPS-Benutzer mit Git-Anmeldeinformationen.

    • Wählen Sie im Schlüsselbund-Dienstprogramm auf der Registerkarte Access Control für git-codecommit.us-east-2.amazonaws.com die Option Allow all applications to access this item (access to this item is not restricted) aus. Auf diese Weise werden keine Popups angezeigt, aber die Anmeldeinformationen laufen ab (nach durchschnittlich etwa 15 Minuten) und die Fehlermeldung 403 wird angezeigt. In diesem Fall müssen Sie das Schlüsselbundobjekt löschen, um die Funktionalität wiederherzustellen.

    • Sie installieren eine Git-Version, in der nicht standardmäßig der Schlüsselbund verwendet wird.

    • Ziehen Sie eine Skriptlösung zum Löschen des Schlüsselbundelements in Betracht. Ein von der Community generiertes Beispiel einer Skriptlösung finden Sie unter Mac OS X Script to Periodically Delete Cached Credentials in the OS X Certificate Store in Produkt- und Service-Integrationen.

Wenn Sie nicht möchten, dass Git das Schlüsselbund-Dienstprogramm verwendet, können Sie Git so konfigurieren, dass "osxkeychain" nicht mehr als Hilfsprogramm für die Anmeldeinformationen verwendet wird. Wenn Sie beispielsweise ein Terminal öffnen und den Befehl git config --system credential.helper ausführen und osxkeychain zurückgegeben wird, ist Git zur Verwendung des Schlüsselbund-Dienstprogramms eingestellt. Sie können dies ändern, indem Sie den folgenden Befehl ausführen:

git config --system --unset credential.helper

Beachten Sie, dass die Ausführung dieses Befehls mit der --system Option das Git-Verhalten für alle Benutzer systemweit ändert. Dies kann unbeabsichtigte Folgen für andere Benutzer oder für andere Repositorys haben, wenn Sie zusätzlich zu anderen Repository-Diensten verwenden. CodeCommit Außerdem ist für diesen Ansatz möglicherweise sudo erforderlich und Sie benötigen ausreichende Systemberechtigungen zum Anwenden dieser Änderung. Führen Sie den Befehl git config --system credential.helper erneut aus, um sicherzustellen, dass er korrekt ausgeführt wurde. Weitere Informationen finden Sie unter Customizing Git - Git Configuration und in diesem Artikel zu Stack Overflow.

Git für Windows: Ich habe Git für Windows installiert, aber mir wird der Zugriff auf mein Repository verweigert (403)

Problem: Unter Windows greift das Hilfsprogramm für Anmeldeinformationen nicht wie erwartet auf Ihre Anmeldeinformationen zu bzw. verwendet diese nicht wie erwartet. Dies kann durch verschiedene Probleme verursacht werden:

  • Der AWS CLI ist für einen AWS-Region anderen konfiguriert als für den, in dem das Repository existiert.

  • Standardmäßig installiert Git für Windows ein Git Credential Manager-Hilfsprogramm, das nicht mit CodeCommit Verbindungen kompatibel ist, die den AWS Credential Helper verwenden. Wenn es installiert ist, führt es dazu, dass Verbindungen zum Repository fehlschlagen, obwohl der Credential Helper mit dem installiert AWS CLI und für Verbindungen zu konfiguriert wurde. CodeCommit

  • Einige Versionen von Git für Windows entsprechen möglicherweise nicht vollständig den Anforderungen RFC2617 und RFC4559, was möglicherweise zu Problemen sowohl mit den Git-Anmeldeinformationen als auch mit dem Credential Helper führen kann, der in der enthalten ist. AWS CLI Weitere Informationen finden Sie unter Version 2.11.0(3) does not ask for username/password.

Mögliche Lösungen:

  • Wenn Sie versuchen, den in der enthaltenen Credential Helper zu verwenden AWS CLI, sollten Sie erwägen, eine Verbindung mit Git-Anmeldeinformationen herzustellen, HTTPS anstatt den Credential Helper zu verwenden. Die für Ihren IAM Benutzer konfigurierten Git-Anmeldeinformationen sind mit dem Git Credential Manager für Windows kompatibel, im Gegensatz zum Credential Helper für. AWS CodeCommit Weitere Informationen finden Sie unter Für HTTPS-Benutzer, die Git-Anmeldeinformationen verwenden.

    Wenn Sie den Credential Helper verwenden möchten, um zu überprüfen, ob der richtig konfiguriert AWS CLI ist AWS-Region, führen Sie den aws configure Befehl aus und überprüfen Sie die angezeigten Informationen. Wenn sich das CodeCommit Repository in einem AWS-Region anderen Verzeichnis befindet als dem, das für den angezeigt wird AWS CLI, müssen Sie den aws configure Befehl ausführen und die Werte auf die Werte ändern, die für diese Region geeignet sind. Weitere Informationen finden Sie unter Schritt 1: Erstkonfiguration fürCodeCommit.

  • Wenn möglich, deinstallieren Sie Git für Windows und installieren Sie es dann erneut. Achten Sie bei der Installation von Git für Windows darauf, dass das Kontrollkästchen zur Installation des Git-Dienstprogramms zur Verwaltung von Anmeldeinformationen (Git Credential Manager) nicht aktiviert ist. Dieses Programm zur Verwaltung von Anmeldeinformationen ist nicht mit dem AWS CodeCommit-Hilfsprogramm für Anmeldeinformationen kompatibel. Wenn Sie den Git Credential Manager oder ein anderes Programm zur Verwaltung von Anmeldeinformationen installiert haben und es nicht deinstallieren möchten, können Sie Ihre .gitconfig Datei ändern und die Verwaltung von Anmeldeinformationen hinzufügen für: CodeCommit

    1. Öffnen Sie die Systemsteuerung, wählen Sie Credential Manager und entfernen Sie alle gespeicherten Anmeldeinformationen für. CodeCommit

    2. Öffnen Sie Ihre .gitconfig-Datei in einem Texteditor wie zum Beispiel dem Windows-eigenen Editor.

      Anmerkung

      Wenn Sie mit mehreren Git-Profilen arbeiten, haben Sie möglicherweise lokale und globale .gitconfig-Dateien. Stellen Sie sicher, dass Sie die richtige Datei bearbeiten.

    3. Fügen Sie nun der .gitconfig-Datei den folgenden Abschnitt hinzu:

      [credential "https://git-codecommit.*.amazonaws.com"] helper = !aws codecommit credential-helper $@ UseHttpPath = true
    4. Speichern Sie die Datei und öffnen Sie anschließend eine neue Befehlszeilensitzung, bevor Sie einen erneuten Verbindungsversuch unternehmen.

    Sie können diesen Ansatz auch verwenden, wenn Sie den Credential Helper verwenden möchten, wenn Sie eine Verbindung zu Repositorys herstellen, und ein anderes Credential Management System, AWS CodeCommit wenn Sie eine Verbindung zu anderen gehosteten CodeCommit Repositorys, wie z. B. Repositorys, herstellen möchten. GitHub

    Um die Einstellung zurückzusetzen, welches Hilfsprogramm für Anmeldeinformationen standardmäßig verwendet wird, können Sie die Option --system anstelle von --global oder --local verwenden, wenn Sie den Befehl git config ausführen.

  • Wenn Sie Git-Anmeldeinformationen auf einem Windows-Computer verwenden, können Sie versuchen, alle Probleme mit der RFC Nichtkonformität zu umgehen, indem Sie Ihren Benutzernamen mit Git-Anmeldeinformationen als Teil der Verbindungszeichenfolge angeben. Um das Problem beispielsweise zu umgehen und ein Repository mit dem Namen zu klonen MyDemoRepo in der Region USA Ost (Ohio):

    git clone https://Your-Git-Credential-Username@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
    Anmerkung

    Dieser Ansatz funktioniert nicht, wenn in dem Benutzernamen Ihrer Git-Anmeldeinformationen ein @-Zeichen vorkommt. Sie müssen das URL Zeichen -kodieren (auch als URL Escape-Kodierung oder Prozentkodierung bezeichnet).