GitHub permission refusée: l'agent de ssh add n'a pas d'identité

c'est la première fois que j'accède à GitHub et je n'ai pas l'habitude d'utiliser la console. Je suis sur un Macbook (en utilisant Bash). Lorsque j'essaie d'accéder à github, j'obtiens ceci:

git clone git@github.com:dhulihan/league-of-legends-data-scraper.git
Cloning into 'league-of-legends-data-scraper'...
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 essayé de suivre les instructions sur la page Github à propos de Permission refusée Lorsque j'utilise ssh -vT git@github.com je reçois le texte suivant:

OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to github.com [192.30.252.129] port 22.
debug1: Connection established.
debug1: identity file /Users/XXXX/.ssh/id_rsa type -1
debug1: identity file /Users/XXXX/.ssh/id_rsa-cert type -1
debug1: identity file /Users/XXXX/.ssh/id_dsa type -1
debug1: identity file /Users/XXXX/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version libssh-0.6.0
debug1: no match: libssh-0.6.0
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha1 none
debug1: kex: client->server aes128-ctr hmac-sha1 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Server host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /Users/XXXX/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/XXXX/.ssh/id_rsa
debug1: Trying private key: /Users/XXXX/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).

eval "$(ssh-agent-s)" renvoie "Agent pid 2314" Toutefois, ssh-add-L renvoie "le l'agent n'a pas d'identité."

et c'est là que je suis coincé. J'ai essayé de googler ce problème et de la recherche ici. J'ai essayé d'accéder aux fichiers du répertoire ssh, mais il n'y en a aucun. Juste un dossier appelé Knownusers.

Quelqu'un peut-il m'aider?

84
demandé sur Dark 2014-10-22 15:02:11

9 réponses

plus de détails dans cette réponse .

en résumé, quand ssh-add -l retourne The agent has no identities cela signifie que les clés utilisées par ssh (stockées dans des fichiers tels que ~/.SSH / id_rsa,~/.ssh / id_dsa, etc) sont soit manquants, ils ne sont pas connus de l'agent d'authentification ( ssh-agent ), ou leurs permissions sont mal définies (par exemple, World writable).

si vos clés sont manquantes (i.e., vous n'avez pas généré clés), utilisez' ssh-keygen ' (par exemple, ssh-keygen -t rsa ) pour les générer, puis utilisez ssh-add pour les ajouter.

si les clés existent mais ne sont pas connues de ssh-agent (par exemple, elles peuvent être dans un dossier non standard), utilisez" ssh-add "(par exemple, ssh-add /path/to/my-ssh-folder/id_rsa ) pour les ajouter.

voir cette réponse si vous avez des problèmes avec ssh-add ou ssh-agent .

115
répondu John Doedoe 2017-05-23 11:55:03

essayez ceci:

ssh-add ~/.ssh/id_rsa

a travaillé pour moi

71
répondu Boltun Oreh 2016-04-13 11:36:30

en 2017 RÉPONSE pour macOs Sierra Et Sierra:

PS: la plupart des autres réponses vous permettront de créer une nouvelle clé SSH ... mais vous n'avez pas besoin de faire cela:)

comme décrit en détail sur https://openradar.appspot.com/27348363 , macOS / OS X till Yosemite utilisé pour se souvenir des clés SSH ajouté par commande ssh-add -K <key>

voici donc les 4 étapes que j'ai dû suivre pour que cela fonctionne:

1: ssh-add ~/.ssh/PATH_TO_YOUR_SSH_PRIVATE_KEY (e.g. ~/.ssh/id_rsa)

2: ajouter ce qui suit dans ~/.ssh/config

Host * 
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile PATH_TO_YOUR_SSH_PRIVATE_KEY (e.g. ~/.ssh/id_rsa)

3: assurez-vous de supprimer toute entrée gitconfig qui utilise l'aide osxkeychain:

 https://github.com/gregory/dotfiles/commit/e38000527fb1a82b577f2dcf685aeefd3b78a609#diff-6cb0f77b38346e0fed47293bdc6430c6L48

4: redémarrez votre terminal pour qu'il prenne effet.

21
répondu metakungfu 2017-10-26 06:34:27

j'ai été coincé un moment sur le même problème, j'ai finalement résolu.

mon problème : Je ne pouvais pas exécuter de poussée. Je pouvais vérifier et voir ma télécommande (en utilisant git remote -v ), mais quand j'ai exécuté git push origin master , elle est retournée: Permission denied (publickey). fatal: Could not read from remote repository. et ainsi de suite.

Comment je l'ai résolu :

  • j'ai généré une clé en utilisant ssh-keygen -t rsa . Entrer un nom pour le fichier clé (quand demandé) était inutile.
  • je pourrais alors ajouter la clé (à git) : ssh-add /Users/federico/.ssh/id_rsa , qui a retourné avec succès Identity added: /Users/myname/.ssh/id_rsa (/Users/myname/.ssh/id_rsa)
  • j'ai ajouté la touche SSH au github en utilisant cette page d'aide .
  • après avoir essayé toutes les commandes de la page d'aide' Permission denied publickey 'de Github, seule la commande ssh-add -l a fonctionné / semblait utile (après avoir exécuté les étapes précédentes), il a retourné avec succès ma clé. La dernière étape montre l'endroit où vous pouvez vérifier votre clé publique sur votre page GitHub. Et cette commande vous aidera à vérifier toutes vos clés : ls -al ~/.ssh .

alors la commande push a finalement fonctionné !

j'espère que cela aidera ! Bonne chance à tous.

10
répondu Fed Zee 2016-09-22 22:12:48

exécutez les commandes suivantes:

ssh-keygen -t rsa
ssh-add /Users/*yourUserNameHere*/.ssh/id_rsa** 
pbcopy < ~/.ssh/id_rsa.pub**

allez sur votre compte Github: https://github.com/settings/profile

1) clic: touches SSH et GPG

2) nouvelle clé SSH et passé là-bas

3) Ajouter la touche ssh

fait!

3
répondu zouhair khallaf 2017-10-27 20:56:34

tout d'abord, vous devez aller dans votre répertoire ssh

pour ce type suivant la commande dans votre terminal en mac ou ce que vous utilisez dans la fenêtre

cd ~/.ssh

maintenant il est dans le ssh

ici vous pouvez trouver toutes vos clés ssh/fichiers relatifs à tous vos projets. maintenant, tapez la commande suivante pour vous montrer si une clé ssh disponible

ls

cela vous montrera tous disponibles ssh, dans mon cas il y avait deux

maintenant, vous aurez besoin de démarrer un agent pour y ajouter un ssh. Pour ce type suivant la commande

eval "$(ssh-agent -s)"

maintenant dernier mais non des moindres, vous allez ajouter un ssh dans ce type d'agent suivant la commande

ssh-add ~/.ssh/your-ssh

remplacer

remplacez votre-ssh par votre nom de fichier ssh que vous avez reçu un formulaire de liste deuxième étape ls command

3
répondu Sultan Ali 2017-12-03 16:32:38

cela pourrait causer pour tout nouveau terminal, l'ID de l'agent est différent. Vous devez ajouter la clé privée pour l'agent

$ ssh-add <path to your private key>
1
répondu user9253738 2018-01-22 21:20:20

un autre élément que j'ai réalisé est que typiquement .le dossier ssh est créé dans votre dossier racine dans Mac OS X /Users/. Si vous essayez d'utiliser ssh -vT git@github.com d'un autre dossier, il vous donnera une erreur, même si vous avez ajouté la clé correcte.

vous devez ajouter la clé à nouveau (ssh-add 'correct path to id_rsa') à partir du dossier courant pour authentifier avec succès (en supposant que vous avez déjà téléchargé la clé de votre profil dans Git)

0
répondu Varghese Cherian 2018-02-21 03:51:12

après avoir lutté pendant longtemps, j'ai finalement été en mesure de résoudre ce problème sur Windows, pour moi, l'utilisateur env variable GIT_SSH a été mis à point à

" C:\Program fichiers (x86)\WinScp\PuTTY\plink.exe 151910920"

qui a été installé avec WinScp. J'ai changé le pointage pour utiliser par défaut ssh.exe qui vient avec git-scm "C:\Program Files\Git\usr\bin\ssh.exe 151910920"

0
répondu Santan 2018-03-11 10:11:50