web-dev-qa-db-fra.com

Impossible de pousser vers le référentiel Git - autorisation refusée

J'ai un problème suivant:

$ git Push -u 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.

J'ai déjà vérifié la connexion en faisant ceci:

$ ssh -vT [email protected]

et la sortie semble bonne, j'ai été correctement authentifié.

En vérifiant plus loin, j'ai remarqué que:

$ ssh-add -l
The agent has no identities.

J'ai essayé d'exécuter ssh-agent, mais rien n'a changé:

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-A1mhFqvqncuO/agent.766; export SSH_AUTH_SOCK;
SSH_AGENT_PID=767; export SSH_AGENT_PID;
echo Agent pid 767;
$ ssh-add -l
Could not open a connection to your authentication agent.

J'utilise Arch Linux. Toute aide serait fortement appréciée! Merci d'avance!

Aide au diagnostic Github ici.

48
mc.suchecki

J'ai eu le problème similaire et mon problème a été résolu en exécutant la commande suivante pour ajouter ma clé à la liste des clés connues:

ssh-add ~/.ssh/id_rsa

J'espère que cela résoudra aussi le vôtre. ;)

119
NEO

Vous devez faire dans votre console ( si vous utilisez un client PuTTY ssh ):

  1. Générez les clés, si les clés n'existent pas:

    cd ~/.ssh && ssh-keygen -lf ~/.ssh/id_rsa.pub
    

N'oubliez pas le mot de passe, entré à cette étape!

  1. Sortez votre clé publique à l'écran:

    cd ~/.ssh && cat id_rsa.pub
    
  2. Copiez cette chaîne en cliquant et déplacez le pointeur de la souris du début à la fin. Pas besoin d'appuyer Ctrl + V ou d'autres clés.

  3. Connectez-vous à votre compte sur GitHub et ajoutez cette clé publique à https://github.com/settings/ssh

  4. Vous pouvez maintenant utiliser votre git localement.

6
Sergio Belevskij

Si vous ne l'avez pas déjà lu, vous devriez consulter la page d'aide de GitHub pour cette erreur:

Erreur: autorisation refusée (publickey)

Chaque fois que j'ai eu ce problème, c'était en raison du dernier problème répertorié sur cette page: je n'avais pas la clé publique de mon poste de travail actuel attachée à mon compte GitHub. Bien sûr, GitHub fournit également des instructions sur comment attacher votre clé publique à votre compte .


tl; dr

Assurez-vous que votre clé publique actuelle est associée à votre compte GitHub.

6
DaoWen

Je ne pense pas que cela résoudra votre problème puisque vous avez testé ssh -vT [email protected] directement et cela a fonctionné, mais vous utilisez le ssh-agent incorrectement. Vous devez courir

$ eval `ssh-agent -s`
Agent pid 767
$ ssh-add -l
The agent has no identities.

Cela évaluera les commandes d'exportation d'environnement et permettra à votre ssh-add et ssh commandes pour communiquer avec l'agent. Alternativement, vous pouvez demander à l'agent de démarrer un shell, un terminal, etc. et il configurera l'environnement approprié:

$ ssh-agent bash
$ ssh-add -l
The agent has no identities.

Dans ce cas, le shell s'exécute en tant qu'enfant de ssh-agent et l'agent s'arrête lorsque le shell se ferme.

4
squid314

J'ai rencontré le même problème sur mon Ubuntu et je me rends compte que je suis en mode Sudo, une fois que j'accède à remote sans Sudo ça s'est bien passé.

C'est ainsi que je me débarrasse du problème, j'espère que cela peut aider.

3
Syed Shahul

Autorisation refusée (clé publique). J'ai rencontré ce problème aujourd'hui, mais j'ai finalement trouvé une solution et réussi à résoudre mon problème.

Vous devriez peut-être vérifier les problèmes suivants:

  1. vous avez un compte github
  2. git config votre nom d'utilisateur et -mail
  3. générer une paire pri/pub ssh-key et ajouter la clé publique à votre compte git, veuillez vérifier que cela peut vous aider: génération d'une nouvelle clé ssh et ne peut pas refuser l'autorisation du référentiel git refusée '
  4. vérifiez que la clé ssh a bien été ajoutée: ssh -V [email protected]
  5. bonne chance!
2
lujiwen

Dans mon cas, j'ai eu ce problème avec GitLab parce que je travaillais avec des chemins de paire de clés SSH non par défaut. La réponse de @NEO fonctionne parfaitement:

ssh-add ~/.ssh/other_id_rsa

Cependant, je devais le faire à chaque fois que j'ouvrais un nouveau terminal.

Pour rendre ce changement permanent, vous devez modifier ~/.ssh/config et ajoutez ce qui suit:

Host gitlab.company.com
RSAAuthentication yes
IdentityFile ~/.ssh/config/private-key-filename

Pour plus d'informations, consultez documentation de gitlab .

2