J'ai créé un nouveau référentiel et je rencontre une erreur étrange. J'ai déjà utilisé Git sur Bitbucket mais je viens de le reformater et maintenant je n'arrive pas à faire fonctionner Git. Après avoir fait un commit, j'ai dû ajouter mon email et mon nom aux globals, mais ensuite ça s'est très bien engagé.
Quand j'essaye d'utiliser la commande
git push origin master
ça ne marche pas. Je reçois ce message:
$ git push origin master
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Je suis perdu ici. Mon ami avec qui je partage ce référentiel, l'a bien accédé et l'a poussé très bien, mais je n'arrive pas à le faire fonctionner.
Réponses:
Écrire ceci pour ceux qui commencent tout juste avec Git et BitBucket sur Windows et qui ne sont pas aussi familiers avec Bash (car il s'agit à la fois d'un problème courant et d'un résultat Google de haut niveau lors de la recherche du message d'erreur dans la question).
Pour ceux qui ne craignent pas HTTPS et qui recherchent une solution rapide, faites défiler vers le bas de cette réponse pour obtenir des instructions sous POUR LES PARAINES
Pour ceux qui cherchent à résoudre le problème réel, suivez les instructions ci-dessous:
Résoudre le problème SSH le plus rapidement possible
Il s'agit d'un ensemble d'instructions dérivées de l'URL liée par VonC. Il a été modifié pour être aussi résilient et succinct que possible.
Ne tapez pas la
$
ou les lignes qui ne commencent pas par$
($
cela signifie que c'est quelque chose que vous tapez dans GitBash).Ouvrez GitBash
Définissez vos informations générales si vous ne l'avez pas déjà fait:
Vérifiez OpenSSH:
Vous voyez quelque chose comme ça?
Vérifiez si vous avez déjà généré les clés:
S'il y a deux fichiers, vous pouvez ignorer l'étape suivante.
Laissez tout par défaut, entrez une phrase de passe. Vous devriez maintenant voir les résultats avec cette commande:
Recherchez un fichier de configuration existant:
Si vous obtenez un résultat, recherchez dans ce fichier des informations erronées. Si aucun fichier n'existe, procédez comme suit:
Confirmez le contenu:
Vérifiez que vous démarrez l'agent SSH à chaque fois que vous exécutez GitBash:
start_agent
, cette étape est déjà terminée.Entrez ce qui suit dans GitBash pour créer votre fichier .bashrc:
Vérifiez que le fichier a été créé avec succès (le vôtre ne doit différer que là où "votre nom d'utilisateur" apparaît):
.bashrc
n'est pas exécuté par défaut -.bash_profile
est. Pour résoudre ce problème, placez cet extrait dans votre.bash_profile
:[[ -s ~/.bashrc ]] && source ~/.bashrc
Si vous n'avez pas entré de phrase de passe, vous auriez vu quelque chose comme ceci lors du démarrage de GitBash:
Et ce qui suit devrait renvoyer des résultats:
Cependant, si vous obtenez les éléments suivants
ssh-add -l
:Cela n'a pas engendré l'agent SSH et votre .bashrc en est probablement la cause.
Si, au démarrage de GitBash, vous voyez ceci:
Cela signifie que vous avez oublié d'échapper le $ avec un \ lors de l'écho dans le fichier (c'est-à-dire que les variables ont été développées). Recréez votre .bashrc pour résoudre ce problème.
Vérifiez que l'agent est en cours d'exécution et que vos clés ont été ajoutées:
Devrait retourner quelque chose de similaire à ceci:
Exécutez la commande suivante pour obtenir votre clé publique:
(il devrait renvoyer quelque chose commençant par "ssh-rsa ......"
ssh-rsa
bit de début et le== [email protected]
bit de fin )CTRL+A
puisCTRL+C
pour copier à nouveau la clé publique dans votre presse-papiers.Configurez votre clé privée avec BitBucket en effectuant les étapes suivantes:
Global Public Key
pour l'étiquetteUne
Global Public Key
entrée devrait maintenant être visible dans votre liste de clés.Vérifiez vos télécommandes:
Basculez vers l'url SSH:
Vérifiez que les choses fonctionnent:
Vous devriez voir quelque chose comme ceci:
TERMINÉ!
Vous pouvez choisir d'utiliser HTTPS au lieu de SSH. Il vous faudra taper votre mot de passe pendant les opérations à distance (il est temporairement mis en cache après que vous l'avez tapé une fois). Voici comment configurer HTTPS:
POUR LES PARAINES
Vous devez résoudre le problème SSH comme décrit par VonC; cependant, si vous êtes pressé de vous engager et que vous n'avez pas les outils / le temps / les connaissances pour générer une nouvelle clé publique pour le moment , définissez votre origine sur l'alternative HTTPS:
Utilisation d'un outil GUI tel que TortoiseGit ou des outils de ligne de commande .
Voici la documentation de cette URL d'origine alternative.
Ligne de commande pour ajouter une origine s'il n'en existe pas:
Ligne de commande pour modifier une origine existante:
REMARQUE: votre nom de compte n'est pas votre adresse e-mail.
Vous pouvez également définir vos informations globales:
Puis réessayez votre push (pas besoin de vous engager à nouveau)
la source
~/.bashrc
mais toujours lorsque vous exécutez la commandessh-all -l
Cela s'affiche toujoursNo agent
Dans ce cas, essayez cette commandessh-agent /bin/bash
et cela vaInitializing new SSH agent...
Cette erreur se produit également si vous avez oublié d'ajouter la clé privée à
ssh-agent
. Faites ceci avec:la source
Reformaté signifie que vous avez probablement supprimé vos clés ssh publiques et privées (dans ~ / .ssh).
Vous devez les régénérer et publier votre clé ssh publique sur votre profil BitBucket, comme indiqué dans « Utiliser le protocole SSH avec Bitbucket », après « Configurer SSH pour Git avec GitBash ».
Comptes-> Gérer les comptes-> Clés SSH:
Ensuite:
Images de « Intégration de Mercurial / BitBucket avec le logiciel JetBrains »
la source
J'ai résolu ce problème en supprimant la télécommande à l'aide de la commande:
puis a essayé d'ajouter à distance en utilisant l'url https au lieu de ssh
Il demande des informations d'identification github. Entrez les informations d'identification, puis essayez de pousser vers git en utilisant:
la source
J'ai eu le même problème. Mes clés SSH ont été définies correctement. J'ai résolu ce problème comme ça.
Après avoir créé un nouveau projet dans Bitbucket, utilisez clone. Entrez la commande de clonage dans le terminal et il devrait cloner le projet vide sur votre ordinateur. Après cela, vous pouvez copier vos fichiers dans ce répertoire et commencer à valider et à pousser vers bitbucket.
la source
git remote add
processus n'a tout simplement pas fonctionné aujourd'hui - j'ai eu l'erreur d'authentification en essayant de pousser - mais la suppression de .git, puis l'utilisationgit clone
et la recopie de ma source (juste un README.md) fonctionne bien. Merci Rafael - Je n'aurais certainement pas pensé essayer cela sans votre réponse.mkdir /tmp/JUNK; cd /tmp/JUNK; git clone ...; cd ..; rm -rf JUNK
Juste besoin d'un fichier de configuration dans le répertoire ~ / .ssh
réf: https://confluence.atlassian.com/bitbucket/set-up-ssh-for-git-728138079.html
ajouter la configuration ci-dessous dans le fichier de configuration
la source
Deux petites clarifications qui pourraient éviter à quelqu'un la confusion que j'ai traversée:
1 - Les URL de connexion diffèrent pour HTTPS et SSH
Lors de la connexion via https, vous utilisez
cependant lors de la connexion via SSH, le nom du compte est toujours "git"
Tenter de se connecter à SSH avec le nom de votre compte devant entraînera l'erreur que l'affiche originale a reçue. C'est ainsi que vous pouvez faire le test de connexion à git @, puis essayer par erreur avec votre nom d'utilisateur et voir une erreur.
2 - Les clés SSH via les comptes d'équipe seront obsolètes en 2017
Si vous configurez des clés SSH sur des comptes d'équipe, ils recommandent de les basculer vers des comptes personnels. Un conseil utile pour éviter e
la source
Si vous utilisez SourceTree (j'utilise 2.4.1), j'ai trouvé un moyen plus simple de générer une clé SSH et de l'ajouter à mes paramètres Bitbucket. Cela a résolu le problème pour moi.
J'ai reçu un e-mail de confirmation de Bitbucket indiquant qu'une clé SSH avait été ajoutée à mon compte.
Pour référence, sur macOS, à l'aide de Terminal, vous pouvez utiliser la commande suivante pour voir les clés générées pour votre appareil. C'est là que la clé que vous avez générée est stockée.
Comme d'autres l'ont indiqué, cette documentation m'a aidé: Utiliser le protocole SSH avec Bitbucket Cloud
la source
Faites le ssh comme dans le didacticiel Atlassian et assurez-vous que la clé privée est collée dans le profil, pas dans le référentiel :)
la source
Atlassian tutorial
? Quelles sont les étapes pour coller la clé dans le profil et comment savoir si elle est collée dans le référentiel?J'ai eu cette même erreur pour un référentiel - tout à coup, tous les autres étaient et fonctionnent toujours bien lorsque j'essaye de pousser des commits. Le problème semblait être avec la clé SSH (comme vous le savez déjà dans les commentaires précédents) - sur bitbucket,
View Profile
cliquez surManage Account
.Sur le côté gauche, cliquez sur
SSH Keys
puis ajoutez celui que vous avez sur votre système sous le répertoire ~ / .ssh /.Si vous n'en avez pas encore généré, utilisez les instructions de l'un des articles, mais assurez-vous d'utiliser le fichier id_dsa.pub par défaut ou un fichier nommé personnalisé, avec plus tard l'
-i
option avec le chemin d'accès à la clé lorsque vous connecter ieUne fois que vous avez ajouté votre clé locale à votre compte sur bitbucket, vous pourrez commencer à interagir avec votre référentiel.
la source
J'ai trouvé que la solution qui fonctionnait le mieux pour moi était de diviser la poussée en petits morceaux.
et en supprimant les grands fichiers d'image de capture d'écran (10 Mo +) des commits
La sécurité n'était pas un problème à la fin plus sur les limites des fichiers bin
la source
Cette erreur apparaît également lorsque le référentiel n'existe pas. J'ai essayé toutes les réponses jusqu'à ce que je vois que le nom du repo manquait un tiret
la source
Pour les erreurs:
[Erreur] Accès au référentiel refusé. l'accès via une clé de déploiement est en lecture seule. fatal: impossible de lire à partir du référentiel distant. Veuillez vous assurer que vous disposez des droits d'accès appropriés et que le référentiel existe.
[Erreur] fatale: impossible de lire à partir du référentiel distant.
[erreur] fatale: impossible de trouver l'assistant distant pour "https"
J'ai résolu en suivant ces étapes:
Installez d'abord ces dépendances:
Puis supprimez git:
Maintenant, construisez et installez Git sur la dernière version, dans ce cas:
Puis pour la configuration:
Et enfin installez comme ceci:
c'est tout, maintenant configurez votre dépôt avec https:
si vous avez configuré une clé ssh sur votre serveur distant, vous devez la supprimer.
la source
J'ai cette erreur
Puis j'ai essayé
travaillé sans guillemets.
la source
J'ai trouvé que la ligne de commande git n'avait pas envie de mes clés générées par Pageant (Windows 10).
Voir ma réponse sur Serverfault
la source
J'utilise macOS et bien que j'aie configuré ma clé publique dans bitbucket la prochaine fois que j'ai essayé de pousser, j'ai obtenu
Ce que je devais faire était l' étape 2. Ajoutez la clé à l'agent ssh comme décrit dans le guide de configuration des clés SSH Bitbucket et en particulier la 3ème étape:
J'espère que cela aide un utilisateur de mac avec le même problème.
la source
Cela est probablement dû à la présence de plusieurs clés SSH dans l'agent SSH (et / ou BitBucket). Consultez la documentation Atlassian pour la solution de contournement pour cela
la source
J'ai eu ce problème et je pensais que j'étais fou. J'utilise SSH depuis 20 ans. et git sur SSH depuis 2012 ... mais pourquoi ne puis-je pas récupérer mon référentiel bitbucket sur mon ordinateur personnel?
eh bien, j'ai deux comptes bitbucket et 4 clés SSH sont chargées dans mon agent. même si mon .ssh / config a été configuré pour utiliser la bonne clé. lorsque ssh initialisait la connexion, il les utilisait dans l'ordre chargé dans l'agent. donc je me connectais à mon compte bitbucket personnel.
puis obtenir une erreur Interdite en essayant de récupérer le dépôt. logique.
J'ai déchargé la clé de l'agent
ssh-add -d ~/.ssh/personal_rsa
alors je pourrais aller chercher les pensions.
... Plus tard, j'ai découvert que je pouvais le forcer à utiliser uniquement l'identité spécifiée
Je ne connaissais pas cette dernière option
IdentitiesOnly
à partir de la documentation de bitbucket elle-même
https://blog.developer.atlassian.com/different-ssh-keys-multiple-bitbucket-accounts/
la source
Essayez juste
la source