1325 Stimmen

Wie gebe ich einen Benutzernamen und ein Passwort an, wenn ich "git clone git@remote.git" ausführe?

Ich weiß, wie man einen Benutzernamen und ein Passwort für eine HTTPS-Anfrage wie diese bereitstellt:

git clone https://username:password@remote

Aber ich würde gerne wissen, wie ich einen Benutzernamen und ein Passwort für die Fernbedienung angeben kann:

git clone git@remote.git

Ich habe es auf diese Weise versucht:

git clone username:password@git@remote.git
git clone git@username:password@remote.git
git clone git@remote.git@username:password

Aber sie haben nicht funktioniert.

34voto

Obwohl es viele Antworten gibt, stehe ich immer wieder vor dem gleichen Problem, wenn der Benutzername oder das Passwort Sonderzeichen enthält.

Verschlüsseln Sie Ihren Benutzernamen und Ihr Kennwort für Git in der URL und verwenden Sie sie dann als Teil der URL selbst (wenn keine Sicherheitsbedenken bestehen).

Sagen wir, der URL-kodierte Wert des Benutzernamens

user+1' ist user%2B1

und URL-kodierter Wert des Passworts

Willkommen@1234' ist Willkommen%401234

Dann würde Ihre GIT-Clone-URL wie folgt aussehen,

git clone https://user%2B1:Welcome%401234@actual-git-url-for-the-repo funktioniert perfekt, während,

Git-Klon https://user+1:Willkommen@1234@aktuelle-git-url-für-das-repo gibt Ihnen 403 Fehler

Ich hoffe, das hilft.

Nur für den Fall, dass Sie die URL online kodieren möchten: https://www.urlencoder.org/

22voto

Masoud Gheisari Punkte 658

Um ein Repository zu klonen, sollten Sie zunächst ein Zugriffstoken generieren (Sie können Ihr Login-Passwort nicht mehr verwenden) und dann das Repository mit diesem generierten Token klonen.

Zugriffstoken generieren:

github:
Einstellungen > Entwicklereinstellungen > Persönliche Zugriffstoken > Neues Token generieren

bitbucket:
Persönliche Einstellungen > App-Passwörter > App-Passwort erstellen

Klonen Sie das Repository:

github:

$ git clone https://YOUR-USERNAME:GENERATED-TOKEN@github.com/YOUR-USERNAME/YOUR-REPOSITORY

bitbucket:

git clone https://YOUR-USERNAME@bitbucket.org/YOUR-REPOSITORY

Sie werden zur Eingabe des generierten Tokens aufgefordert.

18voto

BehrouzMoslem Punkte 7864

Ich habe dieses Problem auf folgende Weise gelöst:

enter image description here

15voto

Ore4444 Punkte 8959

Unter Windows sollten die folgenden Schritte das GitHub-Anmeldefenster erneut auslösen, wenn git clone ing:

  • Suchen Sie im Startmenü nach "Credential Manager".
  • Wählen Sie "Windows-Anmeldeinformationen".
  • Löschen Sie alle Anmeldeinformationen, die mit Git oder GitHub zu tun haben.

result

12voto

Rakib Punkte 10994

Wenn Sie Folgendes verwenden http/https und Sie sind auf der Suche nach VOLLSTÄNDIG AUTOMATISIERT den Prozess, ohne dass Benutzereingaben oder eine Benutzerabfrage erforderlich sind (z. B. innerhalb einer CI/CD-Pipeline), können Sie den folgenden Ansatz verwenden, der git credential.helper

GIT_CREDS_PATH="/my/random/path/to/a/git/creds/file"
# Or you may choose to not specify GIT_CREDS_PATH at all.
# See https://git-scm.com/docs/git-credential-store#FILES for the defaults used

git config --global credential.helper "store --file ${GIT_CREDS_PATH}"
echo "https://alice:${ALICE_GITHUB_PASSWORD}@github.com" > ${GIT_CREDS_PATH}

wo Sie die Option ALICE_GITHUB_PASSWORD Umgebungsvariable aus einem früheren Shell-Befehl oder aus Ihrer Pipeline-Konfiguration usw.

Denken Sie daran, dass der "store"-basierte git-credential-helper Passwörter und Werte im Klartext speichert. Stellen Sie also sicher, dass Ihr Token/Passwort nur sehr begrenzte Berechtigungen hat.


Verwenden Sie nun einfach https://alice@github.com/my_repo.git wo auch immer Ihr automatisiertes System das Repository abrufen muss - es wird die Anmeldedaten für alice en github.com wie von git-credential-helper gespeichert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X