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--
Ê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.
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.
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/
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).
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
Étape 1: Installez git-credential-winstore
https://confluence.atlassian.com/bitbucketserver/permanently-authenticating-with-git-repositories-776639846.html
Étape 2: git config --global credential.helper 'cache --timeout 3600'
Ceci stockera votre mot de passe pendant 1 heure
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.
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/*
...
...
...
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
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.
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.
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.