Fehlerbehebung beim Helfer für Anmeldeinformationen und HTTPS-Verbindungen zuAWS CodeCommit - AWS CodeCommit

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.

Fehlerbehebung beim Helfer für Anmeldeinformationen und HTTPS-Verbindungen zuAWS CodeCommit

Die folgenden Informationen können Ihnen dabei helfen, häufige Probleme bei der Verwendung des Hilfsprogramms für Anmeldeinformationen, das in der enthalten istAWS CLIund HTTPS, um sich mit CodeCommit-Repositorys zu verbinden.

Anmerkung

Obwohl das Hilfsprogramm für Anmeldeinformationen eine unterstützte Methode für die Verbindung mit CodeCommit über den Verbundzugriff, über einen Identitätsanbieter oder mit temporären Anmeldeinformationen ist, empfiehlt sich die Installation und Verwendung desgit-remote-codecommitDienstprogramm. Weitere Informationen finden Sie unter Einrichtungsschritte für HTTPS-Verbindungen zuAWS CodeCommitmitgit-remote-codecommit .

Ich erhalte eine Fehlermeldung beim Ausführen desgit configBefehl zum Konfigurieren des Helfers für Anmeldeinformationen

Problem: Wenn Sie versuchen, den Befehl git config auszuführen, um den Helfer für Anmeldeinformationen für die Kommunikation mit einem CodeCommit-Repository zu konfigurieren, wird ein Fehler angezeigt, dass zu wenige Argumente vorliegen, 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 unter einem Windows-Betriebssystem verwendet werden oder doppelte Anführungszeichen für den Befehl in einem Linux-, macOS- oder Unix-Betriebssystem verwendet werden. Die richtige Syntax ist 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 $@'

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

Problem: Nach dem Aktualisieren desAWSCLI, Hilfsverbindungen für Anmeldeinformationsprogramme mit CodeCommit-Repositorys schlagen mit fehlaws codecommit credential-helper $@ get: aws: command not foundaus.

Ursache: Der häufigste Grund für diesen Fehler ist, dass SieAWSDie CLI-Version wurde auf eine Version aktualisiert, die Python 3 verwendet. Dies ist ein bekanntes Problem bei 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. Beispiel:

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 Möglichkeiten umgehen:

  • Installieren und konfigurieren Sie die AWS CLI auf Windows unter Verwendung von Python und pip anstelle des MSI. Weitere Informationen finden Sie unter Installieren von Python, pip und der AWS CLI unter Windows.

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

    [credential] helper = !"\C:\\Program Files\\Amazon\\AWSCLI\\bin\\aws.cmd\" codecommit credential-helper $@ UseHttpPath = true
  • Führen Sie den Befehl git config aus, um Ihre .gitconfig-Datei so zu konfigurieren, dass sie explizit auf aws.cmd verweist. Aktualisieren Sie dann manuell die PATH-Umgebungsvariable nach Bedarf mit dem Pfad zu dem Befehl. Beispiel:

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

Wenn ich eine Verbindung mit einem CodeCommit-Repository verbinde, werde ich zur Eingabe eines Benutzernamens aufgefordert

Problem: Wenn Sie versuchen, mithilfe des Hilfsprogramms für Anmeldeinformationen mit einem CodeCommit-Repository zu kommunizieren, werden Sie in einer Meldung aufgefordert, Ihren Benutzernamen einzugeben.

Mögliche Lösungen: Konfigurieren IhrerAWSProfil oder stellen Sie sicher, dass Sie das Profil verwenden, das Sie für die Arbeit mit CodeCommit konfiguriert haben. 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 über IAM, Zugriffsschlüssel und geheime Schlüssel finden Sie unterVerwalten der Zugriffsschlüssel für IAM-BenutzerundWie erhalte ich Anmeldeinformationen?

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

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

  • DieAWS CLIist konfiguriert für einAWS-Regionanders als die, in der sich das Repository befindet.

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

Mögliche Lösungen: So überprüfen Sie, ob derAWS CLIist für die richtige Region konfiguriert, führen Sie dieaws configureund überprüfen Sie die angezeigten Informationen. Wenn sich das CodeCommit-Repository in einemAWS-Regionanders als der für dieAWS CLI, musst du das führen Sie das aus:aws configurebefehlen und ändern Sie die Werte in diejenigen, die für diese Region geeignet sind. Weitere Informationen finden Sie unter Schritt 1: Erstkonfiguration fürCodeCommit .

Die Standardversion von Git, die unter OS X und macOS veröffentlicht wurde, speichert generierte Anmeldeinformationen mithilfe des Schlüsselbund-Dienstprogramms (Keychain Access). Aus Sicherheitsgründen ist das für den Zugriff auf das -CodeCommit-Repository generierte Passwort vorübergehend, sodass die im Schlüsselbund gespeicherten Anmeldeinformationen nach ca. 15 Minuten nicht mehr gültig sind. Wenn Sie nur mit CodeCommit auf Git zugreifen, versuchen Sie folgende Methode:

  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

    In der Ausgabe dieses Befehls wirdSuche nach ähnlichen Ergebnissen:

    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 „Anmeldeinformationen“, der enthälthelper = osxkeychainaus. Beispiel:

      # helper = osxkeychain
    • Aktualisieren Sie beide dasaws credential helperundosxkeychainHelferabschnitte für Anmeldeinformationen, um Kontext zu haben. Beispiel, wennosxkeychainwird verwendet, um sich bei GitHub zu authentifizieren:

      [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 dasosxkeychainHelfer, wenn der Remote-Host übereinstimmt“https://github.com„und der Helfer für Anmeldeinformationen, wenn der Remote-Host übereinstimmt“https://git-codecommit\.us-east-1\.amazonaws.com„.

    • Fügen Sie vor dem Helfer für Anmeldeinformationen einen leeren String-Helfer ein. Beispiel:

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

    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 GitHub zuzulassen, könnten Sie die Kopfzeile wie folgt modifizieren:

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

Wenn Sie mit Git auf andere Repositorys zugreifen, können Sie das Schlüsselbund-Dienstprogramm 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. Search Bygit-codecommit.us-east-2.amazonaws.comund ersetzenus-east-2mit demAWS-Regionwo 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:

    • Connect Sie sich mit CodeCommit über SSHoder Git-AnmeldeinformationenINSTEAD OFHilfsprogramm für Anmeldeinformationen 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 Sie diesen Befehl mit dem--system-Option ändert systemweit das Git-Verhalten für alle Benutzer und dies kann unerwartete Konsequenzen für andere Benutzer oder Repositorys haben, wenn Sie neben CodeCommit weitere Repository-Services verwenden. 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:

  • DieAWS CLIist konfiguriert für einAWS-Regionanders als die, in der sich das Repository befindet.

  • Standardmäßig installiert Git für Windows ein Git-Dienstprogramm für Anmeldeinformationen, das nicht mit CodeCommit-Verbindungen kompatibel ist, die dieAWSHilfsprogramm für Anmeldeinformationen. Wenn diese Installation installiert ist, schlagen Verbindungen mit dem Repository fehl, obwohl das Hilfsprogramm für Anmeldeinformationen mit derAWS CLIund für Verbindungen mit CodeCommit konfiguriert.

  • Einige Versionen von Git für Windows erfüllen möglicherweise nicht vollständig die in RFC 2617 und RFC 4559 festgeschriebenen Bedingungen. Dies kann zu Problemen mit Git-Anmeldeinformationen und dem in die AWS CLI integrierten Hilfsprogramm für Anmeldeinformationen führen. Weitere Informationen finden Sie unter Version 2.11.0(3) does not ask for username/password.

Mögliche Lösungen:

  • Wenn Sie versuchen, das Hilfsprogramm für Anmeldeinformationen der AWS CLI zu verwenden, sollten Sie die Verbindung unter Umständen mit Git-Anmeldeinformationen über HTTPS und nicht mit dem Hilfsprogramm aufbauen. Die Git-Anmeldeinformationen, die für Ihren IAM-Benutzer konfiguriert sind, sind im Gegensatz zum Hilfsprogramm für Anmeldeinformationen mit dem Git-Anmeldeinformationsverwaltung für kompatibelAWS CodeCommitaus. Weitere Informationen finden Sie unter Für HTTPS-Benutzer, die Git-Anmeldeinformationen verwenden .

    Wenn Sie das Hilfsprogramm für Anmeldeinformationen verwenden möchten, um zu überprüfen, ob dieAWS CLIist für das Richtige konfiguriertAWS-Region, führen Sie das ausaws configureund überprüfen Sie die angezeigten Informationen. Wenn sich das CodeCommit-Repository in einemAWS-Regionanders als der für dieAWS CLI, musst du das führen Sie das aus:aws configurebefehlen und ändern Sie die Werte in diejenigen, 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 Dienstprogramm zur Verwaltung von Anmeldeinformationen installiert haben und es nicht deinstallieren möchten, können Sie Ihren.gitconfigDatei und fügen Sie die Verwaltung von Anmeldeinformationen für CodeCommit hinzu:

    1. ÖffnenSystemsteuerung, wählenAnmeldeinformationsverwaltungund 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 anwenden, wenn Sie das Hilfsprogramm für Anmeldeinformationen für verwenden möchtenAWS CodeCommitWenn Sie eine Verbindung mit CodeCommit-Repositorys und bei der Verbindung mit anderen gehosteten Repositorys (wie zum Beispiel GitHub-Repositorys) eine Verbindung mit anderen gehosteten Repositorys (wie zum Beispiel Git

    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, Probleme aufgrund von mangelnder RFC-Compliance zu umgehen, indem Sie Ihren Git-Benutzernamen als Teil der Verbindungszeichenfolge eingeben. So können Sie beispielsweise das Problem umgehen und ein Repository mit dem Namen klonenMyDemoRepoIn 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 für das Zeichen eine URL-Codierung (auch bekannt als URL-Escaping oder Prozentcodierung) durchführen.