it-swarm.com.de

Git on Bitbucket: Immer nach Passwort gefragt, auch nach dem Hochladen meines öffentlichen SSH-Schlüssels

Ich habe meinen ~/.ssh/id_rsa.pub auf Bitbuckets SSH-Schlüssel as erklärt hochgeladen, aber Git fragt mich immer noch bei jedem Vorgang nach meinem Passwort (wie git pull). Habe ich etwas verpasst?

Es ist ein privates Repository (Abzweig des privaten Repository einer anderen Person) und ich habe es folgendermaßen geklont:

git clone [email protected]:Nicolas_Raoul/therepo.git

Hier ist mein lokaler .git/config:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "Origin"]
        fetch = +refs/heads/*:refs/remotes/Origin/*
        url = https://[email protected]/Nicolas_Raoul/therepo.git
[branch "master"]
        remote = Origin
        merge = refs/heads/master

In derselben Umgebung mit demselben öffentlichen Schlüssel funktioniert Git auf Github einwandfrei.
.ssh ist rwx------, .ssh/id_rsa ist -rw-------, .ssh/id_rsa.pub ist -rw-r--r--

149
Nicolas Raoul

Sind Sie sicher, dass Sie es mit der ssh-URL geklont haben?

Die URL für Origin sagt url = https://[email protected]/Nicolas_Raoul/therepo.git. Wenn Sie also https verwenden, werden Sie unabhängig von Ihren SSH-Schlüsseln nach einem Kennwort gefragt.

221
manojlds

Wie erklärt hier , wenn Sie mit klonen SSH URL, Sie nicht Sie müssen bei jedem Drücken/Ziehen den Benutzernamen/das Kennwort eingeben. Überprüfen Sie oben answer von @manojlds

Aber wenn Sie mit klonen wollen HTTPS und wollen vermeiden Durch die Eingabe von Benutzername/Passwort können Sie die Anmeldeinformationen speichern zwischenspeicher mit dem folgenden Befehl:

git config --global credential.helper 'cache --timeout 3600'

wenn 3600 (Sekunden) 1 Stunde bedeutet, können Sie sie entsprechend Ihrer Anforderung ändern.

23
Ajeet

Es wurde bereits oben beantwortet. Ich werde die oben zu überprüfenden Schritte zusammenfassen.

führen Sie git remote -v im Projektverzeichnis aus. Wenn in der Ausgabe eine Remote-URL angezeigt wird, die mit https://abc beginnt, benötigen Sie möglicherweise jedes Mal ein Benutzername.

Um die entfernte URL zu ändern, git remote set-url Origin {ssh remote url address starts with mostly [email protected]:}.

Führen Sie nun git remote -v aus, um die geänderte Remote-URL zu überprüfen.

Siehe: https://help.github.com/articles/changing-a-remote-s-url/

17
shiva kumar

Im Fall der HTTP-Anfrage ist es auch und alternativ möglich, die Anmeldeinformationen (mit Kennwort) direkt in die URL einzufügen:

http://username:[email protected]/...

Dies erspart Ihnen den Schmerz, Ihre Anmeldeinformationen jedes Mal erneut zu erteilen. Ändern Sie einfach Ihre .git/config (die URL).

9
Sven W.

Hallo Googler aus der Zukunft.

Unter MacOS> = High Sierra wird der SSH-Schlüssel nicht mehr in KeyChain gespeichert aus Gründen .

Die Verwendung von ssh-add -K Überlebt auch keine Neustarts mehr.

Hier sind mögliche Lösungen .

Ich habe die erste Methode erfolgreich angewendet. Ich habe eine Datei mit dem Namen config in ~/.ssh Erstellt:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa
8
Vaiden
4
webdev5

Im Folgenden wird der Befehlszeilenzugriff über iTerm/Terminal auf Bitbucket vorausgesetzt.

Für MacOS Sierra 10.12.5 hatte mein System ein gleichwertiges Problem - es wurde nach meiner SSH-Passphrase für jede Verbindung mit Bitbucket gefragt.

Das Problem hat mit OpenSSH-Updates in macOS 10.12.2 zu tun, die hier in Technical Note TN2449 beschrieben sind.

Möglicherweise möchten Sie Ihre Lösung maßschneidern, aber Folgendes wird funktionieren, wenn Sie es in Ihre Datei ~/.ssh/config einfügen:

Host *
    UseKeychain yes

Weitere Informationen zu ssh configs finden Sie in den Manpages zu ssh_config:

% man ssh_config

Eine andere Sache: Es gibt einen guten Bericht über superuserhier , in dem dieses Problem und verschiedene Lösungen besprochen werden, je nach Ihren Bedürfnissen und Ihrem Setup.

4
pob

Ich habe das Repository mit einer HTTPS-URL anstelle einer SSH-URL geklont, sodass ich nach dem Hinzufügen des SSH-Schlüssels nach dem Kennwort für Bash Shell gefragt wurde.

Ich habe gerade die Datei ./.git/config bearbeitet und den Wert der Variablen url geändert, indem ich einfach die Variable https:// durch ssh:// ersetzt habe.

Z.B.

[core]
        ...
        ...
        ...
[remote "Origin"]
        url = https://<username>@bitbucket.org/<username>/<repository_name>.git
        fetch = +refs/heads/*:refs/remotes/Origin/*
        ...
        ...
        ...

Gewechselt zu:

[core]
        ...
        ...
        ...
[remote "Origin"]
        url = ssh://<username>@bitbucket.org/<username>/<repository_name>.git
        fetch = +refs/heads/*:refs/remotes/Origin/*
        ...
        ...
        ...
2
Swaroop Bhagwat

Keine dieser Antworten hat mir geholfen. Es stellte sich heraus, dass mein Thema etwas anders war. Es war ssh, die jedes Mal nach meinem Passwort fragte, bevor der Schlüssel gesendet wurde. Also musste ich mein Passwort mit diesem Befehl verknüpfen:

ssh-add -K ~/.ssh/id_rsa

Sie werden dann aufgefordert, Ihr Kennwort einzugeben und es zu speichern. Dies könnte die Lösung sein, nach der Sie suchen, wenn Sie jedes Mal aufgefordert werden, ein Kennwort einzugeben 

Geben Sie die Passphrase für den Schlüssel '/Users//.ssh/id_rsa' ein:

Mehr Infos hier

1
stackPusher

Möglicherweise müssen Sie Ihre SSH-Identitätsdatei noch einmal überprüfen. Sie können BitBucket dazu bringen, einen anderen/falschen privaten Schlüssel zu dem entsprechenden öffentlichen Schlüssel zu betrachten, den Sie in BitBucket gespeichert haben.

Überprüfen Sie es mit tail ~/.ssh/config - Sie werden etwas Ähnliches sehen:

Host bitbucket.org
 HostName bitbucket.org
 IdentityFile ~/.ssh/personal-bitbucket-ssh-key

Denken Sie daran, dass das Hinzufügen zusätzlicher Identitäten (wie Arbeit und Zuhause) mit dem Befehl ssh-add möglich ist, zum Beispiel:

ssh-keygen -t rsa -C "companyName" -f "companyName"
ssh-add ~/.ssh/companyName

Nachdem Sie bestätigt haben, welcher private Schlüssel lokal betrachtet wird, können Sie Ihr öffentliches Äquivalent verwenden, in diesem Fall:

cat ~/.ssh/personal-bitbucket-ssh-key.pub | pbcopy

Und fügen Sie diese Chiffre auf BitBucket ein. Ihre Git-Pushs werden jetzt (sofern Sie den SSH-Klon verwenden, wie bereits erwähnt wurde) ohne Passwort zugelassen, da Ihr Gerät ein anerkannter Benutzer ist.

Hoffentlich hilft das jemandem, es aufzuklären.

1
Grant

Bei mir lief zwar 'git clone ssh: //[email protected]: 7999/projName/projA.git' Ich wurde immer noch nach dem Passwort für dieses neue Repo gefragt, das ich geklont habe, also durch Vergleich Seine .git/config -Datei für andere Repos, die funktionieren. Es stellte sich heraus, dass es sich um die URL im Abschnitt [remote "Origin"] handelte. Es wurde für den neuen Repo-Pfad oben auf den SSH-Pfad gesetzt, jedoch für https: xxx der arbeitende.

0
Ninos

Ich hatte andere Verrückte beim Einloggen. Ich stieß auf etwas, das total dumm erschien, aber in meinem Fall funktionierte. Gehen Sie einfach zum MacOS-Schlüsselbund. Suchen Sie das Anmeldesperrensymbol in der Seitenleiste. Klicken Sie darauf, um sich abzumelden, und klicken Sie dann, um sich anzumelden. Klingt dumm, hat aber meine Probleme gelöst. Einen Versuch wert.

0
smileBot