web-dev-qa-db-fra.com

Autorisation Github refusée: ssh add agent n'a aucune identité

C'est la première fois que j'utilise Github et je n'ai pas l'habitude d'utiliser la console. Je suis sur un Macbook (avec Bash). Quand j'essaye d'accéder à github, j'obtiens ceci:

git clone [email protected]: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 de la page Github à propos de Autorisation refusée Lorsque j'utilise ssh -vT [email protected], le message suivant s'affiche:

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).

Ensuite, eval "$ (ssh-agent -s)" renvoie "Agent pid 2314" Cependant, ssh-add -l renvoie "L'agent n'a aucune identité."

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

Quelqu'un peut-il m'aider pour ce problème?

94
Dark

Tous les détails dans cette réponse

En résumé, lorsque ssh-add -l renvoie 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 manquantes, elles ne sont pas connues de l'agent d'authentification (ssh-agent ), ou leurs autorisations ne sont pas définies correctement (par exemple, monde en écriture).

Si vos clés sont manquantes (c’est-à-dire que vous n’avez pas généré de clés), utilisez 'ssh-keygen' (par exemple, ssh-keygen -t rsa) pour les générer, puis utilisez ssh-add pour les ajouter.

Si des clés existent mais que ssh-agent ne connaît pas (par exemple, elles peuvent se trouver 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 rencontrez des problèmes avec ssh-add ou ssh-agent.

127
John Doedoe

essaye ça:

ssh-add ~/.ssh/id_rsa

a travaillé pour moi

82
Boltun Oreh

LA RÉPONSE 2017 DES MACOS Sierra & High Sierra: 

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

Comme décrit en détail sur https://openradar.appspot.com/27348363 , macOS/OS X jusqu'à ce que Yosemite mémorise les clés SSH ajoutées à l'aide de la commande ssh-add -K <key>

Donc voici 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 les éléments suivants 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 toutes les entrées de gitconfig utilisant osxkeychain helper:

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

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

25
metakungfu

Cela fait un moment que je suis bloqué sur le même problème, que j'ai finalement résolu.

Mon problème: Je n'ai pas pu exécuter de Push. Je pouvais vérifier et voir ma télécommande (en utilisant git remote -v), mais lorsque j’ai exécuté git Push Origin master, elle a renvoyé: 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 de clé (lorsque 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 clé SSH à githuben utilisant cette page d'aide
  • Après avoir essayé toutes les commandes de la page d’aide de Github intitulée «Permission denied publickey», seule la commande ssh-add -l fonctionnait/semblait utile (après avoir exécuté les étapes précédentes), ma clé a bien été renvoyée. La dernière étape vous indique où vérifier votre clé publique sur votre page GitHub. Et cette commande vous aidera à vérifier toutes vos clés: ls -al ~/.ssh.

Ensuite, la commande Push a finalement fonctionné!

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

10
Fed Zee

Exécutez les commandes suivantes:

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

Accédez à votre compte Github: https://github.com/settings/profile

1) Cliquez sur: Clés SSH et GPG

2) Nouvelle clé SSH et Past it it

3) Ajouter une clé SSH 

Terminé!

5
zouhair khallaf

tout d’abord, vous devez aller dans votre répertoire ssh
pour ce type de commande suivante dans votre terminal sous mac ou quoi que vous utilisiez dans une fenêtre 

cd ~/.ssh

maintenant c'est dans le ssh
Ici vous pouvez trouver tous les fichiers/clés ssh liés à tous vos projets. maintenant, tapez la commande suivante pour vous montrer si une clé ssh est disponible 

ls

cela vous montrera tous les ssh disponibles, dans mon cas il y avait deux
maintenant, vous aurez besoin de démarrer un agent pour y ajouter un ssh. Pour ce type commande suivante 

eval "$(ssh-agent -s)"

maintenant, dernier mais non le moindre, vous ajouterez un ssh dans la commande suivante de ce type d'agent 

ssh-add ~/.ssh/your-ssh

remplacer 

remplacez your-ssh par votre nom de fichier ssh dont vous avez obtenu la liste sous la seconde étape ls command

5
Sultan Ali

Cela pourrait entraîner 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>
3
user9253738

Un élément supplémentaire que j'ai compris est que le dossier .ssh est généralement créé dans votre dossier racine sous Mac OS X/Users /. Si vous essayez d'utiliser ssh -vT [email protected] à partir d'un autre dossier, vous obtiendrez une erreur même si vous avez ajouté la clé correcte.

Vous devez à nouveau ajouter la clé (ssh-add 'chemin correct à id_rsa') du dossier actuel pour vous authentifier avec succès (en supposant que vous ayez déjà téléchargé la clé sur votre profil dans Git).

1
Varghese Cherian

Après avoir longtemps lutté, j'ai finalement pu résoudre ce problème sous Windows. Pour moi, la variable d’environnement utilisateur GIT_SSH était définie sur 

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

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

0
Santan

Cela a fonctionné pour moi:
chmod 700 .ssh chmod 600 .ssh/id_rsa chmod 644 .ssh/id_rsa.pub

Ensuite, tapez ceci: ssh-add ~/.ssh/id_rsa

0
Nacho Cornejo

Étapes pour BitBucket:

si vous ne voulez pas générer de nouvelle clé, SKIP ssh-keygen

ssh-keygen -t rsa 

Copiez la clé publique dans le presse-papier:

clip < ~/.ssh/id_rsa.pub

Connexion au bit Bucket: Accédez à Afficher le profil -> Paramètres -> Clés SSH (dans l’onglet Sécurité) Cliquez sur Ajouter une clé, Collez la clé dans la zone, ajoutez un titre descriptif

Retournez à Git Bash:

ssh-add -l

Tu devrais obtenir : 

2048 SHA256:5zabdekjjjaalajafjLIa3Gl/k832A /c/Users/username/.ssh/id_rsa (RSA)

Maintenant: git pull devrait fonctionner

0
Tammy