webentwicklung-frage-antwort-db.com.de

Es ist nicht möglich, Git aus Azure DevOps mit PAT zu klonen

Ich kann kein einfaches Repository aus Azure DevOps klonen. __ OS: Ubuntu 18.10

Ich mache das: 

  • Azure DevOps
  • Klicken Sie in der oberen rechten Ecke auf meinen Benutzernamen
  • Gehen Sie zur Registerkarte "Sicherheit" 
  • Erstellen Sie eine PAT mit dem gesamten Gültigkeitsbereich (um sicherzustellen, dass es keinen Gültigkeitsbereich gibt Problem)
  • Kopieren Sie die PAT in die Zwischenablage
  • Fügen Sie die PAT an einer anderen Stelle ein, um zu bestätigen, dass die PAT korrekt kopiert wurde (ich weiß ... nicht sicher, aber das ist nicht im Rahmen dieser Frage).
  • Gehen Sie zu meiner Konsole 
  • Ausgabe: git clone https://myorganization.visualstudio.com/myproject/_git/myrepo/ 
  • Ich gebe den Benutzernamen und das Passwort ein (die PAT)

Ich erhalte ständig diese Nachricht von Git: fatal: Authentication failed for 'https://myorganization.visualstudio.com/myproject/_git/myrepo/'

Ich habe die Lösungen anderer Leute gelesen, aber keiner hat für mich gearbeitet. Ich habe auch folgendes versucht:

  • Übergeben Sie das Token in der Form https: // username: [email protected]/myproject/_git/myrepo/ Ich bin wirklich überrascht, dass die Leute sagen, dass dies geklappt hat das: bedeutet der Hafen. 
  • Versucht mit Credential Manager von git zu aktivieren/deaktivieren * Versucht mit Windows und Ubuntu. 
  • Es wurde versucht, die einfachen Anmeldeinformationen zu aktivieren und zu deaktivieren. 
  • Versucht mit den einfachen Anmeldeinformationen, d. H. Benutzername + Kennwort. 
  • Versuchte, meinen Benutzernamen in https: // username @ .... einzutragen.
  • Versuchte, SSH zu verwenden
  • Es wurde versucht, den http.extraHeader im Befehl git mit dem Header zu verwenden 
    Berechtigung: Basic Base64Encoded (uname: PAT)
  • Es wurde versucht, den http.extraHeader im Befehl git mit dem Header zu verwenden 
    Vollmacht: Inhaber PAT
  • Es wurde versucht, den VSCode-Client zu verwenden. Es generiert die PAT selbst, kann sich aber immer noch nicht authentifizieren und klonen.
  • Es wurde versucht, den Rider-VSTS-Client zu verwenden. Es generiert die PAT selbst, kann sich aber immer noch nicht authentifizieren und klonen.
  • Versuchte, den git Credentials Manager für Linux zu verwenden. Es fordert den Code auf und wenn wir uns im Browser authentifizieren, wird eine PAT erfolgreich generiert. Dennoch kann sich danach nicht authentifizieren.

Irgendein Hinweis, warum das nicht funktioniert?

4
Jose

Ich habe das gleiche Problem erlebt und habe eine ganze Weile nach einer Lösung gesucht. Schließlich bin ich auf diesen Beitrag gestoßen, der im Kommentarabschnitt eine Lösung von Martinius79 enthielt.

Kurz gesagt, es war erforderlich, den Benutzernamen und das als base64 codierte PAT über git http.extraheaders zu übergeben, damit es sich authentifizieren kann.

100% Credit des ursprünglichen Autors, der hier nur hinzugefügt wird, um andere bei der Suche zu unterstützen:

Beispiel: git -c http.extraheader = "ZULASSUNG: Grund TXlHaXRTeW5jVXNlcjo2bHFqNXJkcHEzdXBxZWVmd2o3bDduZXN5NTR3d3gxNHFobDVlanl5NTVkb2g0M3d4YzRh" Klon https: //tfs.address/tfs/Collection/Project/_git/RepoName

Verwendetes Basistoken BASE64 codiert: TXlHaXRTeW5jVXNlcjo2bHFqNXJkcHEzdXBxZWVmd2o3bDduZXN5NTR3d3gxNHFobDVlanl5NTVkb2g0M3d4YzRh

Basic Token BASE64 decodiert: MyGitSyncUser: 6lqj5rdpq3upqeefwj7l7nesy54wwx14qhl5ejyy55doh43wxc4a

Das Token ist aufgebaut aus: In diesem Beispiel: Fiktiver Benutzername: MyGitSyncUser Verwendete PAT: 6lqj5rdpq3upqeefwj7l7nesy54wwx14qhl5ejyy55doh43wxc4a

Ich hoffe das hilft!

4
JSM

Mit PAT habe ich Erfolg gehabt;

  1. kopieren Sie die Klon-URL für Ihr Repository, z. git clone https://<domain>.visualstudio.com/<domain>/_git/<domain>
  2. Nachdem Sie Ihre PAT kopiert haben, verwenden Sie als;

git clone https://<PAT>@<domain>.visualstudio.com/<domain>/_git/<domain>

Benutzername oder Passwort sollten erforderlich sein, da die PAT ausreichen sollte.

2
jabu.hlong

Versuchen Sie es mit: Löschen Sie zunächst die git-Anmeldeinformationen aus dem Credential Manager Versuchen Sie, einen neuen persönlichen Zugriffstoken zu erstellen, um diesen Fehler zu beheben

 Error

Gehen Sie zu Sicherheit -> Persönliches Zugriffstoken -> Hinzufügen .__ Geben Sie Beschreibung an, wählen Sie Alle Bereiche aus, und klicken Sie auf Token erstellen.

 PAT

Kopieren Sie das Token und bewahren Sie es zur späteren Verwendung auf. Dieses Token kann jetzt anstelle des Passworts für den git-Benutzer verwendet werden. 

 Token

0
Salman

Sie müssen Ihr Token Base64-kodieren und es als HTTP-Autorisierungsheader hinzufügen. Dies kann mit OpenSSL erfolgen:

PAT="enter-your-pat-here"
REPO_URL="https://[email protected]/myorg/myproject/_git/myrepo"

AUTH=$(echo -n ":$PAT" | openssl base64 | tr -d '\n')

git -c http.$REPO_URL.extraHeader="Authorization: Basic $AUTH" clone $REPO_URL

echo -n "..." | ... | tr -d '\n' ist ein üblicher Linux-Trick, um einen String als Eingabe an einen Befehl zu senden, für den normalerweise Benutzereingaben erforderlich sind (schreiben Sie einfach openssl base64 und Sie werden sehen).

Beachten Sie das führende ":" in echo -n ":$PAT". Dies liegt daran, dass der "Benutzer" im normalen Format von "Benutzer: Token" fehlt.

Um zu vermeiden, dass die Konfigurationsoption bei jedem Befehl git erneut eingegeben wird, können Sie den Autorisierungsheader Ihrer lokalen oder globalen Konfiguration von git config hinzufügen:

git config --global http.$REPO_URL.extraHeader "Authorization: Basic $AUTH"

Zeigen Sie Ihre Änderungen an mit:

git config --global --edit
0
Sebastian N

Dies ist eine bekannte Regression in curl 7.61.0, die mit Ubuntu 18.10 ausgeliefert wird. Die Regression wurde in curl 7.61.1 behoben, aber Ubuntu 18.10 hat diese Korrektur noch nicht. Siehe (und positiv) https://bugs.launchpad.net/ubuntu/+source/curl/+bug/1805203

0
Congyi Wu