web-dev-qa-db-fra.com

Git sur Bitbucket: toujours demandé le mot de passe, même après le téléchargement de ma clé publique SSH

J'ai chargé mon ~/.ssh/id_rsa.pub dans les clés SSH de Bitbucket comme a expliqué , mais Git me demande toujours mon mot de passe à chaque opération (telle que git pull). Ai-je manqué quelque chose?

C'est un dépôt privé (fork du dépôt privé d'une autre personne) et je l'ai cloné comme ceci:

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

Voici mon .git/config local:

[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

Dans le même environnement avec la même clé publique, Git sur Github fonctionne bien.
.ssh est rwx------, .ssh/id_rsa est -rw-------, .ssh/id_rsa.pub est -rw-r--r--

149
Nicolas Raoul

Êtes-vous sûr de l'avoir cloné en utilisant l'URL ssh?

L'URL pour Origin dit url = https://[email protected]/Nicolas_Raoul/therepo.git donc s'il utilise https, il demandera un mot de passe indépendamment de vos clés ssh.

221
manojlds

Comme expliqué ici , si vous clonez avec SSH url, vous ne pas besoin d'entrer un nom d'utilisateur/mot de passe chaque fois que vous appuyez/tirez. Vérifiez ci-dessus answer by @manojlds

Mais si vous voulez cloner avec HTTPS et veux éviter en entrant le nom d'utilisateur/mot de passe à chaque fois, vous pouvez stocker les informations d'identification dans cache avec la commande ci-dessous:

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

où 3600 (secondes) signifie 1 heure, vous pouvez le changer selon vos besoins.

23
Ajeet

Son déjà répondu ci-dessus. Je vais résumer les étapes à vérifier ci-dessus.

lancez git remote -v dans le répertoire du projet. Si la sortie affiche une URL distante commençant par https://abc, vous aurez peut-être besoin d'un mot de passe utilisateur à chaque fois.

Donc, pour changer l'url distante, lancez git remote set-url Origin {ssh remote url address starts with mostly [email protected]:}.

Exécutez maintenant git remote -v pour vérifier l'URL distante modifiée.

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

17
shiva kumar

Dans le cas d'une requête HTTP, il est également et alternativement possible de coller les informations d'identification (avec mot de passe) directement dans l'URL:

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

Cela épargnera la peine de donner à nouveau vos informations d'identification à chaque fois. Modifiez simplement votre .git/config (l’url).

9
Sven W.

Bonjour Googlers du futur.

Sur MacOS> = High Sierra, la clé SSH n'est plus enregistrée dans le KeyChain pour des raisons .

L'utilisation de ssh-add -K ne survit plus, redémarre également.

Voici 3 solutions possibles

J'ai utilisé la première méthode avec succès. J'ai créé un fichier appelé config dans ~/.ssh:

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

Les éléments suivants supposent un accès en ligne de commande via iTerm/Terminal à bitbucket.

Pour MacOS Sierra 10.12.5, mon système présentait un problème équivalent: il demandait ma phrase secrète SSH sur chaque connexion à bitbucket.

Le problème concerne les mises à jour OpenSSH dans macOS 10.12.2, décrites ici dans Note technique TN2449 .

Vous voudrez peut-être adapter votre solution, mais ce qui suit fonctionnera une fois ajouté à votre fichier ~/.ssh/config:

Host *
    UseKeychain yes

Pour plus d'informations sur les configurations ssh, consultez les pages de manuel de ssh_config:

% man ssh_config

Autre chose: il existe un bon article sur superutilisateurici qui traite de ce problème et de diverses solutions en fonction de vos besoins et de votre configuration.

4
pob

J'ai cloné le référentiel avec une URL HTTPS au lieu d'une URL SSH, donc même après avoir ajouté la clé SSH, le mot de passe m'a été demandé sur Bash Shell.

Je viens de modifier le fichier ./.git/config et de modifier la valeur de la variable url en remplaçant simplement le https:// par ssh://

Par exemple.

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

Changé en:

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

Aucune de ces réponses ne m'a aidé, il s'est avéré que mon problème était légèrement différent. C'était ssh qui demandait mon mot de passe à chaque fois, avant d'envoyer la clé. Donc, ce que je devais faire était de lier mon mot de passe avec cette commande:

ssh-add -K ~/.ssh/id_rsa

Il vous demandera alors votre mot de passe et le stockera. Cela pourrait être la solution que vous recherchez si chaque fois que vous êtes invité à entrer un mot de passe, 

Entrez la phrase secrète pour la clé '/Users//.ssh/id_rsa':

Plus d'infos ici

1
stackPusher

Vous devrez peut-être revérifier votre fichier d'identités SSH. Vous pouvez éventuellement inciter BitBucket à rechercher une clé privée différente/incorrecte par rapport à la clé publique équivalente que vous avez enregistrée sur BitBucket.

Vérifiez-le avec tail ~/.ssh/config - vous verrez quelque chose de similaire à:

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

N'oubliez pas que l'ajout d'identités supplémentaires (telles que travail et domicile) peut être effectué à l'aide de la commande ssh-add, par exemple:

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

Une fois que vous avez confirmé quelle clé privée est examinée localement, vous pouvez alors utiliser votre équivalent public, dans ce cas:

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

Et collez ce chiffre sur BitBucket. Vos poussées git seront désormais autorisées (sans que vous utilisiez le clone SSH comme indiqué ci-dessus) sans mot de passe, car votre appareil est reconnu comme convivial.

Espérons que cela aide à éclaircir pour quelqu'un.

1
Grant

Avec moi, même si j’ai couru 'git clone ssh: //[email protected]: 7999/projName/projA.git' .__, on me demandait toujours un mot de passe pour ce nouveau référentiel que j’ai cloné, donc en son fichier .git/config vers d’autres dépôts qui fonctionnent. Il s’est avéré être l’URL de la section [distante "Origine"], il a été défini sur le chemin ssh ci-dessus pour le nouveau repo, mais sur https: xxx pour celui qui travaille.

0
Ninos

J'avais un autre problème au moment de me connecter. Je suis tombé sur quelque chose qui semblait totalement stupide mais qui a fonctionné dans mon cas. Il suffit d'aller sur le trousseau de MacOS. Recherchez l'icône de verrou de connexion dans la barre latérale. Cliquez dessus pour vous déconnecter puis cliquez pour vous connecter. Cela semble stupide mais cela a résolu mes problèmes. Ça vaut le coup.

0
smileBot