C'est la première fois que j'accède à GitHub et je n'ai pas l'expérience de l'utilisation d'une console. Je suis sur un MacBook utilisant Bash. Lorsque j'essaye 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 concernant le refus d'autorisation.
Quand j'utilise ssh -vT [email protected]
, j'obtiens ce qui suit:
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», mais ssh-add -l
renvoie «L'agent n'a pas d'identité».
Et c'est là que je suis coincé.
Réponses:
Tous les détails dans cette réponse .
En résumé, lorsque les
ssh-add -l
rendements « L'agent n'a pas l' identité », cela signifie que les clés utilisées parssh
(stockées dans des fichiers tels que~/.ssh/id_rsa
,~/.ssh/id_dsa
, etc.) sont soit manquants, ils ne sont pas connuesssh-agent
, ce qui est l'agent d'authentification, ou que leurs autorisations sont définis de manière incorrecte (par exemple, monde inscriptible).Si vos clés manquent ou si vous n'en avez pas généré, utilisez
ssh-keygen -t rsa
, puisssh-add
pour les ajouter.Si des clés existent mais ne sont pas connues
ssh-agent
(comme si elles sont dans un dossier non standard), utilisezssh-add /path/to/my-non-standard-ssh-folder/id_rsa
pour les ajouter.Consultez cette réponse si vous rencontrez des problèmes avec
ssh-add
oussh-agent
.la source
ssh-add /path/to/keyX
pour chacun, surtout s'ils ont des noms non standard. Détails ici: stackoverflow.com/questions/3225862/… (une belle réponse)ssh-add
nouveau après avoir résolu la partie autorisations du problème. Après cela,ssh -vT [email protected]
n'a pas fonctionné. J'ai eu besoin d'ajouter le chemin absolu comme le commentateur mentionné ci-dessus. Ensuite, tout était de la sauce.essaye ça:
travaillé pour moi
la source
chmod 600 ~/.ssh/id_rsa
, alorsssh-add ~/.ssh/id_rsa
LA RÉPONSE 2019 pour macOS Sierra, High Sierra et Catalina:
PS: la plupart des autres réponses vous obligeront à 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 se souvienne des clés SSH ajoutées 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: Ajoutez ce qui suit dans
~/.ssh/config
3: assurez-vous de supprimer toute entrée gitconfig qui utilise osxkeychain helper:
4: redémarrez votre terminal pour qu'il prenne effet.
la source
J'ai été coincé pendant un certain temps 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 quand j'ai exécutégit push origin master
, elle est revenue:Permission denied (publickey). fatal: Could not read from remote repository.
et ainsi.Comment je l'ai résolu:
ssh-keygen -t rsa
. Entrer un nom pour le fichier de clé (lorsqu'on lui a demandé) était inutile.ssh-add /Users/federico/.ssh/id_rsa
qui avec succès retournéIdentity added: /Users/myname/.ssh/id_rsa (/Users/myname/.ssh/id_rsa)
ssh-add -l
commande a fonctionné / semblait utile (après avoir exécuté les étapes précédentes), elle a renvoyé ma clé avec succès. La dernière étape vous montre 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.
la source
Exécutez les commandes suivantes:
Accédez à votre compte Github: https://github.com/settings/profile
1) Cliquez sur: clés SSH et GPG
2) Nouvelle clé SSH et collez-la là
3) Ajouter une clé SSH
Terminé!
la source
tout d'abord vous devez aller dans votre répertoire ssh
pour ce type en suivant la commande dans votre terminal sous mac ou tout ce que vous utilisez dans window
maintenant c'est dans le ssh
ici que vous pouvez trouver toutes vos clés / fichiers ssh liés à tous vos projets. maintenant, tapez la commande suivante pour vous montrer si une clé ssh est disponible
cela vous montrera tous les ssh disponibles, dans mon cas, il y en avait deux
maintenant, vous devrez démarrer un agent pour y ajouter un ssh. Pour ce type commande suivante
maintenant le dernier mais non le moindre, vous allez ajouter un ssh dans ce type d'agent en suivant la commande
remplacer
la source
Cela pourrait entraîner pour tout nouveau terminal, l'ID de l'agent est différent. Vous devez ajouter la clé privée de l'agent
la source
Un élément supplémentaire que j'ai réalisé est que le dossier .ssh est généralement créé dans votre dossier racine dans Mac OS X / Users /. Si vous essayez d'utiliser ssh -vT [email protected] à partir d'un autre dossier, cela vous donnera une erreur même si vous avez ajouté la bonne clé.
Vous devez à nouveau ajouter la clé (ssh-add 'chemin correct vers id_rsa') à partir du dossier actuel pour vous authentifier avec succès (en supposant que vous avez déjà téléchargé la clé sur votre profil dans Git)
la source
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
la source
~/.ssh
autorisations. Néanmoins, vous pouvez grandement améliorer votre réponse en ajoutant la commande complète (icichmod
) et en expliquant ce que cela fait et pourquoi c'est nécessaire.Après avoir lutté pendant longtemps, j'ai finalement pu résoudre ce problème sous Windows, pour moi, la variable d'environnement utilisateur GIT_SSH a été définie pour pointer vers
qui a été installé avec WinScp. J'ai changé le pointage pour utiliser ssh.exe par défaut qui est livré avec git-scm "C: \ Program Files \ Git \ usr \ bin \ ssh.exe"
la source
Étapes pour BitBucket:
si vous ne voulez pas générer de nouvelle clé, SKIP ssh-keygen
Copiez la clé publique dans le presse-papiers:
Connectez-vous à 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 boîte, ajoutez un titre descriptif
Revenez à Git Bash:
Tu devrais obtenir :
Maintenant:
git pull
devrait fonctionnerla source
J'ai eu ce problème après avoir restauré un disque dur à partir d'une sauvegarde.
Mon problème: 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 a renvoyé: Permission refusée (publickey). fatal: impossible de lire à partir du référentiel distant.
J'avais déjà un dossier SSH et des clés SSH, et les ajouter via Terminal (
ssh-add /path/to/my-ssh-folder/id_rsa
) a ajouté avec succès mon identité, mais je ne pouvais toujours pas pousser et j'ai toujours la même erreur. Générer une nouvelle clé était une mauvaise idée pour moi, car elle était liée à d'autres autorisations très sécurisées sur AWS.Il s'est avéré que le lien entre la clé et mon profil Github s'était rompu.
Solution: le réajout de la clé à Github dans Profil> Paramètres> Clés SSH et GPG a résolu le problème.
Aussi: mon compte avait une authentification à 2 facteurs configurée. Dans ce cas, si le terminal demande des informations d'identification, utilisez votre nom d'utilisateur - mais PAS votre mot de passe Github. Pour l'authentification à 2 facteurs, vous devez utiliser votre code d'authentification (pour moi, cela a été généré par Authy sur mon téléphone, et j'ai dû le copier dans Terminal pour le pw).
la source