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!
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. ;)
Vous devez faire dans votre console ( si vous utilisez un client PuTTY ssh ):
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!
Sortez votre clé publique à l'écran:
cd ~/.ssh && cat id_rsa.pub
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.
Connectez-vous à votre compte sur GitHub et ajoutez cette clé publique à https://github.com/settings/ssh
Vous pouvez maintenant utiliser votre git localement.
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.
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.
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.
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:
ssh -V [email protected]
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 .