GitHub: autorisation refusée (publickey). fatal: l'extrémité distante a raccroché de façon inattendue

197

J'ai suivi ces instructions ci-dessous pour télécharger un projet.

Configuration globale:

 Download and install Git
  git config --global user.name "Your Name"
  git config --global user.email [email protected]
  Add your public key


Next steps:

  mkdir tirengarfio
  cd tirengarfio
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin [email protected]:tirenga/tirenga.git
  git push origin master

Mais je reçois cette erreur:

Autorisation refusée (publickey). fatal: l'extrémité distante a raccroché de façon inattendue

ziiweb
la source

Réponses:

24

Pour moi, le problème était l'exécution du clone via sudo.

Si vous clonez vers un répertoire dans lequel vous disposez d'une autorisation utilisateur (/ home / user / git), cela fonctionnera correctement.

(Explication: l'exécution d'une commande en tant que superutilisateur ne fonctionnera pas avec la même clé publique que l'exécution d'une commande en tant qu'utilisateur. Par conséquent, Github a refusé la connexion.)

Cette solution nécessite une clé SSH déjà configurée: https://help.github.com/articles/generating-ssh-keys

Smundo
la source
1
cette solution semble très proche de ce qui a déjà été posté par Learner_19
Erik
125

J'ai dû ajouter ma clé publique à github. https://help.github.com/articles/generating-ssh-keys

ziiweb
la source
3
Si vous utilisez une machine Linux, la copie du contenu du fichier id_rsa.pub peut être difficile si vous utilisez emacs ou nano. Essayez de copier avec un éditeur de texte (le Bloc-notes, TextEdit ou gedit fera très bien l'affaire). Si vous n'en avez aucun, vous pouvez utiliser vim.
Gokul NK
4
@GokulNK L'autre alternative est d'utiliser xclip, comme le recommande la page.
w4etwetewtwet
7
cat ~/.ssh/id_rsa.pubpourrait être une option? : p
torr
vous pouvez utiliser pbcopy < ~/.ssh/id_rsa.pubsous OS X, puis le coller ( cmd+v) dans la page github.
user3648895
28

après avoir créé la paire de clés RSA, vous devez l'ajouter à SSH en utilisant:

ssh-add ~/.ssh/id_rsa

ou partout où vous avez créé votre paire de clés rsa.

Sergio Viera
la source
Gareautrain! Vous frappez le clou sur la tête. Merci
Tash Pemhiwa
D'accord, il est important de vérifier d'abord si ssh-agent est en cours d'exécution (la documentation de GitHub en a un) et si la clé est ajoutée dans son trousseau de clés. Quelque chose d'autre à vérifier, car il peut empêcher la clé d'être utilisée même si elle se trouve dans le trousseau de clés de ssh-agent, est le bon mode d'accès pour la clé privée : il devrait être 0600 ( chmod 600 ~/.ssh/id_rsa, en gros).
chikamichi
18

Tapez la commande suivante en utilisant votre nom d'utilisateur et nom de référentiel:

git clone https://github.com/{user name}/{repo name}

dans Ubuntu, cela fonctionne parfaitement.

rahul_pratap
la source
Je pense que le protocole https est nécessaire pour avoir une connexion sécurisée, c'est pourquoi il fonctionne. Git @ github .. n'est PAS sécurisé pour la machine.
Timo
16

J'ai obtenu une solution après une longue période de tutoriels.

J'ai suivi le tutoriel github sur ce lien -> https://help.github.com/articles/error-permission-denied-publickey et j'ai pu me connecter à chaque étape. Mais quand j'essayais de créer push -u origin master, j'ai eu cette erreur:

Autorisation refusée (publickey). fatal: impossible de lire à partir du référentiel distant.

Veuillez vous assurer que vous disposez des droits d'accès corrects

Voilà comment je l'ai réparé !! Accédez au répertoire du projet à l'aide du terminal et vérifiez-le

$git remote -v

Vous obtiendrez quelque chose comme ceci:

origin  ssh://[email protected]/yourGithubUserName/yourRepo.git (fetch)
origin  ssh://[email protected]/yourGithubUserName/yourRepo.git (push)

Si vous utilisez autre chose que [email protected] , ouvrez le fichier de configuration sur le répertoire git en tapant la commande:

vi .git/config

Et configurer la ligne

[remote "origin"]

url = ssh://[email protected]/yourGithubUserName/yourRepo.git

fetch = +refs/heads/*:refs/remotes/origin/
rafaeljuzo
la source
Pour moi, cela a réellement fonctionné en remplaçant [email protected] par <myusername> @ github.com
Eduard Feicho
La commande "git remote -v" n'est pas celle que j'avais vue auparavant, et elle s'est avérée être la clé pour comprendre pourquoi l'un de mes dépôts fonctionnait, tandis que l'autre renvoyait "Autorisation refusée (publickey)" lorsque je essayé d'exécuter "git ls-remote". Très utile. Merci.
Kevin
6

Dans mon cas, j'ai dû configurer la clé publique pour un autre utilisateur, car j'en avais déjà une pour mon utilisateur principal. une fois que j'ai changé d'utilisateur et exécuté les commandes du lien ci-dessus, j'ai pu effectuer la configuration de mon serveur de test sans problème.

Dan Power
la source
Problème similaire - J'ai été connecté en tant que root (et j'ai ignoré cela) et non en tant qu'utilisateur réel configuré avec SSH. Impossible d'obtenir un engagement de travailler pour quoi que ce soit. Revenir en arrière pour corriger le problème résolu par l'utilisateur!
Richard Hollis
1
Manque explicite d'explication sur la façon de réaliser réellement le correctif.
Richard
Je ne devrais pas avoir à le préciser, c'est pour toi Richard! J'utilisais mon compte non root. J'ai dû exécuter la commande depuis l'url d'aide de github ( help.github.com/articles/generating-ssh-keys#platform-linux ) avec le préfixe sudo.
Dan Power
5

J'ai eu ce problème, mais aucune des solutions ci-dessus n'a fonctionné. Je pouvais cloner et aller chercher, mais je ne pouvais pas pousser. Finalement, j'ai compris que le problème était dans le urlma .git/config, ça devrait être:

[email protected]:<username>/<project>

(pas ssh://github.com/<username>/<project>.gitou https://github.com/<username>/<project>.git).

eold
la source
2
Pour une connexion SSH, la git@partie est magique. Ça ssh://[email protected]/username/project.gitmarche aussi.
évêque
.git est vraiment important. Cette solution fonctionne parfaitement.
Onur Göker
5

Étant donné qu'aucune des réponses ici n'a fonctionné pour moi, j'ai finalement retrouvé mon problème de connexion à Bitbucket (ou Github, peu importe dans ce cas) avec ssh -vT [email protected].

Dans mon cas, l'échec était dû à l'utilisation d'une clé DSA au lieu de RSA, et apparemment, mon client SSH ne le permet plus.

debug1: Ignorer la clé ssh-dss /c/Users/USER/.ssh/id_dsa pour pas dans PubkeyAcceptedKeyTypes

La solution était d'ajouter ceci à .ssh / config:

Host *
    PubkeyAcceptedKeyTypes +ssh-dss

Cela ajoute élégamment le type de clé ssh-dss à tous les types de clé publique acceptés et après cela, git peut maintenant ssh dans Bitbucket sans problème.

Artem Russakovskii
la source
C'était la solution pour moi sur une machine instable Debian en décembre 2015. Je l'ai limitée à "Host bitbucket.org" car j'avais déjà une entrée pour cela pour forcer ma sélection d'identité.
bitmusher
3

Mon problème était que j'essayais de donner à ma clé ssh un NOM SPÉCIFIQUE chaque fois que j'entraisssh-keygen sur mon terminal mac.

J'ai résolu le problème en laissant simplement le nom que "ssh-keygen" génère = id_rsa. Vous vous retrouverez avec 2 clés dans votre dossier .ssh sur un mac id_rsa, qui est votre clé privée, et le id_rsa.pub, qui est votre clé publique. Ensuite, j'ai copié et enregistré le code id_rsa.pubdans les paramètres de mon compte GitHub, et c'est tout. Problème résolu.

paopao
la source
Pareil pour moi. Laisser le nom vide a résolu le problème. Merci.
Berk
Mec, tu as fait ma journée! 2 semaines avec console à cause de noms de clés spécifiques! Merci!
eilas
Heureux que cela ait aidé! @eilas
paopao
La raison pour laquelle cela fonctionne est que sur la plupart des systèmes, les clés privées par défaut ( ~/.ssh/id_rsa, ~/.ssh/id_dsaet ~/.ssh/identity) sont automatiquement ajoutées à l'agent d'authentification SSH.
maffo
2

Ajouter la clé publique est la solution. Pour générer des clés ssh: https://help.github.com/articles/generating-ssh-keys a des instructions étape par étape.

Cependant, le problème peut persister si la clé n'est pas générée correctement. J'ai également trouvé que c'était un lien utile: https://help.github.com/articles/error-permission-denied-publickey

Dans mon cas, le problème était que je générais la clé ssh sans utiliser sudo mais lorsque j'utilisais les commandes git, je devais utiliser sudo. Ce commentaire dans le lien ci-dessus "Si vous générez des clés SSH sans sudo, alors lorsque vous essayez d'utiliser une commande comme sudo git push, vous n'utiliserez pas la clé SSH que vous avez générée." m'a aidé.

Donc, la solution était que je devais utiliser sudo avec les commandes de génération de clés et les commandes git. Ou pour d'autres, lorsqu'ils n'ont besoin de sudo nulle part, ne l'utilisez pas dans l'une des deux étapes. (génération de clés et commandes git).

Learner_19
la source
1

J'ai rencontré un problème similaire lors de l'exécution de SSH ou de Git Clone dans Windows. Les résultats suivants aident à résoudre mon problème:

  • Lorsque vous exécutez «rhc setup» ou d'autres méthodes ssh pour générer la clé ssh, il crée le fichier de clé privée id_rsa dans le dossier .ssh de votre dossier de base, la valeur par défaut est C: \ User \ UserID
  • Git pour Windows a son propre dossier .ssh dans son répertoire d'installation. Lorsque vous exécutez git / ssh, il recherchera le fichier de clé privée id_rsa dans ce dossier
  • Résolu le problème en copiant id_rsa du dossier home dossier .ssh vers le dossier .ssh dans le répertoire d'installation de git

En outre, je pense qu'il existe un moyen de «dire» à git d'utiliser le dossier .ssh par défaut dans le dossier d'accueil, mais j'ai encore besoin de comprendre comment.

gkl
la source
1

Pour moi, cela a fonctionné comme ceci:

Dans GitHub, j'ai changé le sshlien en https, puis j'ai donné les commandes suivantes:

$ git init
$ git remote add origin https:...
$ git add .
$ git commit -m "first commit"
$ git push origin master
Développeur Naiguel
la source
0

Utilisez Ubuntu sur Windows Store

sous-système Windows pour Linux

, votre git push fonctionnera sur différents comptes.

MayurKubavat
la source
0

Si vous utilisez une machine Linux, vérifiez,

  • avez-vous installé Openssh
  • si vous le faites, alors avez-vous une clé publique existante sinon vous devrez en générer une.
  • est votre clé publique ajoutée à votre compte github.

Générer de nouvelles clés SSH et les ajouter à mon compte Github a résolu mon problème. Vous pouvez consulter cette page pour plus de détails. GitHelp .

Sparsh Juneja
la source
0

Vous pouvez essayer de changer votre type de connexion pour passer de ssh à https.

  1. nano project_path/.git/config
  2. Remplacer [email protected]:username/repository.gitparhttps://[email protected]/username/repository_name.git
  3. Enregistrer le fichier ctrl+o

Après cela, vous pouvez essayer git pullsans publickey

Maxim Niko
la source
-1

Un moyen rapide de résoudre ce problème si vous utilisez un Mac consiste à vous déconnecter de l'application OSX et à vous reconnecter.

brandonscript
la source
-1

Mon problème était qu'il ne fonctionnait pas avec une phrase secrète sur ma clé privée.

J'espère que cela aide quelqu'un.

Loir
la source
-3

J'ai essayé les solutions mentionnées mais j'ai toujours échoué. J'ai trouvé la solution qui a finalement fonctionné pour moi ici - supprimer puis rajouter le lien distant

yjsa
la source
-4

J'ai eu le même problème sur Windows. Je suis passé de SSH à HTTPS et j'ai exécuté un Git PUSH.

git push -u origin master
Username for 'https://github.com': <Github login email>
Password for <Github login>: xxx

Réussi! J'espère que cela t'aides.

erukumk
la source
Bien que cela puisse être une solution de contournement, cela ne résout pas le problème initial.
maffo