Message d'erreur GitHub - Autorisation refusée (publickey)

701

Quelqu'un a vu cette erreur et sait quoi faire?

J'utilise le terminal, je suis à la racine, le référentiel GitHub existe et je ne sais pas quoi faire maintenant.

> 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.
webwrks
la source
2
Question similaire: stackoverflow.com/questions/16074832/…
JMoran
1
Il peut s'agir de problèmes d'autorisation avec .ssh et les clés authentifiées. Ssh est assez strict, google.
Karl Morrison
Copie
james.garriss
comme la réponse de @bdukes ici est la commande utilisant https et cela fonctionnera, exemple Windows: "PS C: \ xampp \ htdocs> git clone github.com/algolia/instant-search-demo.git "
Dung

Réponses:

663

GitHub n'est pas en mesure de vous authentifier. Donc, soit vous n'êtes pas configuré avec une clé SSH, car vous n'en avez pas configuré une sur votre machine , soit votre clé n'est pas associée à votre compte GitHub.

Vous pouvez également utiliser l'URL HTTPS au lieu de l'URL SSH / git pour éviter d'avoir à gérer les clés SSH. Il s'agit de la méthode recommandée par GitHub .

De plus, GitHub a une page d'aide spécifiquement pour ce message d'erreur , et explique plus en détail tout ce que vous pouvez vérifier.

bdukes
la source
53
Cette erreur n'est pas exclusive à GitHub. Je reçois la même erreur avec BitBucket, et je me gratte la tête pour savoir comment le résoudre ...
IgorGanapolsky
32
La partie d'aide utilise à ssh -vT [email protected]partir de la page d'aide de Github pour aider à déboguer la clé utilisée par votre dépôt. Je vous suggère de l'ajouter dans votre réponse.
MaximeBernard
25
Le vote positif de l'utilisation de HTTPS au lieu de SSL est un peu décevant. SSH est beaucoup plus pratique. La suggestion de @MaximeBernard ci-dessus a résolu le problème pour moi: GIT ne cherchait pas au bon endroit pour le répertoire .ssh. L'utilisation ssh -vT [email protected]fournit de nombreuses informations expliquant pourquoi cela ne fonctionne pas.
Christophe
1
selon mon commentaire ci-dessus, une troisième option est que la commande est envoyée à partir d'un compte autre que celui avec les clés ssh (par exemple en tant que root).
David LeBauer
1
Comme l'a mentionné @ theapache64: Si vous êtes sur un Mac et que vous avez déjà généré une clé ssh, "ssh-add" peut en effet vous manquer. A travaillé pour moi.
Digital Impermanence
78

Avez-vous créé un fichier de configuration dans votre répertoire ~ / .ssh? Il devrait avoir un contenu comme ceux-ci:

Host github.com 
 IdentityFile ~/.ssh/github_rsa

En supposant que vous avez créé une clé ssh nommée github_rsa

et l'a téléchargé sur GitHub ...

REMARQUE: Vous devez suivre ce mode de configuration explicite si vous avez plus de 1 clé (2 et plus) dans votre répertoire ~ / .ssh /. Si vous ne spécifiez pas la clé de cette façon, la première clé dans l'ordre est prise et utilisée pour l'authentification github, cela dépend donc du nom du fichier de clés.

IgorGanapolsky
la source
1
J'avais généré la clé ssh et j'ai pu bien fonctionner, pendant un certain temps, sans aucun problème. Un beau jour (probablement après le redémarrage), il a cessé de fonctionner, alors que la clé était intacte sur github et sur mon système local. J'ai ajouté le "fichier de configuration", en spécifiant le mappage de clé au domaine. Détails fournis ci-dessus dans igor-ganapolsky-answer. Ça fonctionne bien !
parasrish
3
Cela résout en effet mon problème! Merci beaucoup! Mais j'ai une question. Avant d'utiliser votre méthode, ssh -T [email protected]répondez correctement, tandis que git push -u origin masterdonne la même erreur que dans la question. Pourquoi je peux me connecter correctement, mais je ne peux pas y accéder ou y accéder?
Eden Harder
@EdenHarder Je suis confronté au même problème. Avez-vous trouvé une réponse?
Vreddhi Bhat
64

Je connais ce problème. Après avoir ajouté la clé ssh, ajoutez également votre clé ssh à l'agent ssh (à partir des documents officiels )

ssh-agent -s
ssh-add ~/.ssh/id_rsa

Une fois que tout a bien fonctionné, git peut afficher la clé appropriée, avant de le faire.

VelikiiNehochuha
la source
5
Préfet! A travaillé sur mon MacOS X.
stillatmylinux
9
Impossible d'ouvrir une connexion avec votre agent d'authentification.
Mona Jalal
essayez d'exécuter ceci: evalssh-agent -s
Vincent acent
@MonaJalal usessh-add ~/.ssh/github_rsa
Anirban Nag 'tintinmj'
Parfait. ça fonctionne. Je vous remercie. 👌
Erkam KUCET
62

Vous devez générer une clé SSH (si vous n'en avez pas) et associer la clé publique à votre compte Github. Voir la propre documentation de Github .

cdhowie
la source
2
Merci pour cela ... J'ai obtenu une clé SSH maintenant générée à partir de GitHub. Quelle commande est utilisée pour associer les deux dans le terminal maintenant? Merci!
webwrks
2
Il n'y a pas de commande de terminal pour cela. Voir l'étape 4 de la documentation que j'ai liée dans ma réponse.
cdhowie
J'ai cloné le référentiel en utilisant HTTPS. Dois-je générer une clé SSH dans ce cas?
Pabitra Dash
@PabitraDash Non. HTTPS n'utilise pas de clés SSH.
cdhowie
51

Cela m'est arrivé. Pour une raison quelconque, mon origine a été gâchée sans que je m'en rende compte:

Vérifiez si vos paramètres sont toujours corrects

git remote -v

l'url doit être quelque chose comme ssh: //[email protected]/YourDirectory/YourProject.git; si vous ne voyez pas [email protected], utilisez

git remote set-url origin git://github.com/YourDirectory/YourProject.git

pour le régler correctement. Ou vous pouvez utiliser l'application github pour vérifier et définir l'URL du référentiel distant principal dans le panneau des paramètres de votre référentiel particulier.

rmundo
la source
9
Soyez prudent avec les URL. Ils diffèrent entre https et ssh et les messages sur cette page ne le disent pas clairement. Chaque projet git a un fichier .git / config dans le répertoire racine du projet. Là, vous pouvez définir les informations de la télécommande et de la succursale. Configuration de la télécommande pour https: url = github.com/<yourGitUserName>/<yourGitProject>.git Alors que pour git + ssh: url = [email protected]: <yourGitUserName> / <yourGitProject> .git Une mauvaise URL provoque la autorisation de clé publique refusée erreur qui n'est probablement pas une erreur très claire.
darKoram
pour mon cas en finale fonctionne seulement avec la partie: origine git set-url à distance github.com/your_directory/your_project.git
DNR
19

En supposant que vous connectez GitHub via SSH, vous pouvez exécuter la commande ci-dessous pour le confirmer.

$git config --get remote.origin.url

Si vous obtenez un résultat au format [email protected] suivant: xxx / xxx.github.com.git, vous devez procéder comme suit.

Générez une clé SSH (ou utilisez une clé existante). si vous en aviez un, il vous suffit d'ajouter votre clé à l'agent ssh (étape 2) et à votre compte GitHub (étape 3).

ci-dessous sont pour ceux qui n'ont pas de clé SSH.

Étape 1 Génération d'une paire de clés rsa publique / privée.

$ssh-keygen -t rsa -b 4096 -C "[email protected]"

Il vous sera demandé de confirmer où enregistrer la clé SSH et la phrase secrète que vous souhaitez utiliser.

Étape 2 Ajoutez votre clé à l'agent ssh

  • Assurez-vous que ssh-agent est activé

    $eval "$(ssh-agent -s)"

  • Ajoutez votre clé SSH à l'agent ssh:

    $ssh-add ~/.ssh/id_rsa

Étape 3 Ajoutez votre clé SSH à votre compte

$sudo apt-get install xclip

$xclip -sel clip < ~/.ssh/id_rsa.pub

Ajoutez ensuite la clé copiée à GitHub

Allez dans Paramètres -> Clés SSH (barre latérale des paramètres personnels) -> Ajouter une clé SSH -> remplissez le formulaire (la clé est dans votre presse-papiers, utilisez simplement ctrl + v) -> Ajouter une clé

Après avoir suivi les étapes ci-dessus, vous devez résoudre le problème d'autorisation.

Lien de référence: génération de clés SSH .

xinerd
la source
Cette solution a fonctionné sur ubuntu, $ ssh-add /root/.ssh/id_rsa
Feras
Cela a également résolu un gâchis étrange sur mon environnement, une modification que je suggérerais est d'éviter la dépendance xclip, utilisez simplementcat ~/.ssh/id_rsa.pub
Pogrindis
19

Tout d'abord, nous devons vérifier les clés ssh existantes sur votre ordinateur. Ouvrez Terminal et exécutez:

ls -al ~/.ssh

#or

cd ~/.ssh
ls

et qui répertorie les fichiers dans votre répertoire .ssh

Et enfin en fonction de ce que vous voyez (dans mon cas était):

 github_rsa  github_rsa.pub known_hosts

Essayez simplement de configurer votre RSA et j'espère que cela résoudra vos problèmes "git push origin"

$ ssh-keygen -lf ~/.ssh/github_rsa.pub

REMARQUE: les certificats RSA sont associés à des clés, vous aurez donc un certificat privé et un certificat public, privé ne sera pas accessible pour vous car il appartient à github (dans ce cas) mais le public est celui que vous pourriez manquer lorsque cette erreur se produit (au moins c'était mon cas, mon compte github ou repo a été gâché d'une manière ou d'une autre et j'ai dû "lier" la clé publique, générée précédemment)

d1jhoni1b
la source
Dois-je copier la SHAsortie vers github à partir de cette commande?
IgorGanapolsky
Non, exécutez simplement "ssh-keygen -lf ~ / .ssh / <YOUR_GITHUB_RSA_FILE.pub>"
d1jhoni1b
c'est pourquoi j'ai également joint une commande qui "répertorie les fichiers dans votre répertoire .ssh" ... afin que vous sachiez de quel fichier extraire votre clé (ssh-keygen). N'oubliez pas que les certificats RSA sont associés à des clés, vous aurez donc un certificat privé et un certificat public, privé ne sera pas accessible pour vous car il appartient à github (dans ce cas), mais le public est celui que vous pourriez manquer lorsque cette erreur se produit ( au moins, c'était mon cas, mon compte github ou mon dépôt a été gâché d'une manière ou d'une autre et j'ai dû "lier" la clé publique, précédemment générée, à nouveau)
d1jhoni1b
$ ssh-keygen -lf ~ / .ssh / github_rsa.pub /home/mona/.ssh/github_rsa.pub: Aucun fichier ou répertoire de ce type
Mona Jalal
"Aucun fichier ou répertoire de ce type" signifie que vous n'avez pas ce nom de fichier ou ce chemin ... qu'obtenez-vous lorsque vous exécutez ls -al ~ / .ssh?
d1jhoni1b
14

J'obtenais cette erreur. Il s'avère que je venais de mettre à jour OSX vers Sierra et que mon ancienne clé n'était plus enregistrée.

Au début, je pensais que c'était "La mise à niveau vers macOS Sierra cassera vos clés SSH et vous bloquera sur vos propres serveurs"

Mais je l'avais contourné. Il s'avère que je devais juste réenregistrer ma clé existante:

ssh-add -K

Et tapez la phrase de passe ... c'est fait!

jfunk
la source
2
même problème, a fonctionné pour moi: `ssh-add -K ~ / .ssh / id_rsa`
mvladk
11

Une autre solution :

créer les clés SSH, tapez ssh-keygen -t rsa -C "[email protected]". Cela créera les fichiers id_rsa et id_rsa.pub.

Ajoutez id_rsa à la liste ssh sur l'ordinateur local: ssh-add ~/.ssh/id_rsa.

Après avoir généré les clés, récupérez la clé de pub en utilisant:

cat ~/.ssh/id_rsa.pub 

vous obtiendrez quelque chose comme:

cat ~/.ssh/id_rsa.pub 

ssh-rsa AAAB3NzaC1yc2EAAAADAQABAAACAQCvMzmFEUPvaA1AFEBH6zGIF3N6pVE2SJv9V1MHgEwk4C7xovdk7Lr4LDoqEcqxgeJftwWQWWVrWWf7q9qCdHTAanH2Q5vx5nZjLB+B7saksehVOPWDR/MOSpVcr5bwIjf8dc8u5S8h24uBlguGkX+4lFJ+zwhiuwJlhykMvs5py1gD2hy+hvOs1Y17JPWhVVesGV3tlmtbfVolEiv9KShgkk3Hq56fyl+QmPzX1jya4TIC3k55FTzwRWBd+IpblbrGlrIBS6hvpHQpgUs47nSHLEHTn0Xmn6Q== [email protected]

copiez cette clé (valeur) et allez sur github.com et sous le paramètre (clé ssh et pgp) ajoutez votre clé publique.

Badr Bellaj
la source
10

Dans le cas où vous n'accédez pas à votre propre référentiel, ou que vous clonez à l'intérieur d'un référentiel cloné (en utilisant certaines commandes "git submodule ..."):

Dans le répertoire personnel de votre référentiel:

$ ls -a

1. Ouvrez ".gitmodules", et vous trouverez quelque chose comme ceci:

[submodule "XXX"]
    path = XXX
    url = [email protected]:YYY/XXX.git

Modifiez la dernière ligne pour être le HTTPS du référentiel que vous devez extraire:

[submodule "XXX"]
    path = XXX
    https://github.com/YYY/XXX.git

Enregistrez ".gitmodules" , et exécutez la commande pour les sous-modules, et ".git" sera mis à jour.

2. Ouvrez ".git", allez dans le fichier "config", et vous trouverez quelque chose comme ceci:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com/YYY/XXX.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[submodule "XXX"]
    url = [email protected]:YYY/XXX.git

Modifiez la dernière ligne pour être le HTTPS du référentiel que vous devez extraire:

    url = https://github.com/YYY/XXX.git

Donc, dans ce cas, le problème principal est simplement avec l'url. Le HTTPS de n'importe quel référentiel peut être trouvé maintenant en haut de la page du référentiel.

N. Osil
la source
9

cela a fonctionné pour moi:

1- Supprimer toutes les origines

git remote rm origin  

(cf. https://www.kernel.org/pub/software/scm/git/docs/git-remote.html )

* à distance: "Gérez l'ensemble des référentiels (" télécommandes ") dont vous suivez les branches.

* rm: "Supprimez la télécommande nommée. Toutes les branches de suivi à distance et les paramètres de configuration de la télécommande sont supprimés."

2- Vérifiez que tout a été supprimé:

git remote -v  

3- Ajouter un nouveau maître d'origine

git remote add origin [email protected]:YOUR-GIT/YOUR-REPO.git

c'est tout le monde!

marcdahan
la source
1
Par ces commandes, il commence à me demander le nom d'utilisateur et le mot de passe du compte github, après quoi je peux facilement pousser vers le lien github par type dans le terminal: git push -u origin master
Noha Salah
8

Assurez-vous d' ssh-add -lafficher une empreinte digitale d'une clé SSH présente dans la liste des clés SSH de votre compte Github.

Si la sortie est vide, mais que vous savez que vous disposez d'une clé SSH privée qui fonctionne avec votre compte github, exécutez-la ssh-addsur cette clé (trouvée dans ~/.ssh. Elle est nommée id_rsapar défaut, vous l'exécuterez donc probablement ssh-add id_rsa).

Sinon, suivez ces instructions pour générer une paire de clés SSH.

Rose Perrone
la source
8

J'utilisais github plus tôt pour l'un de mes projets php. Lors de l'utilisation de github, j'utilisais ssh au lieu de https. J'avais ma machine configurée comme ça et chaque fois que j'avais l'habitude de valider et de pousser le code, il me demandait mon mot de passe de clé rsa.

Après quelques jours, j'ai arrêté de travailler sur le projet php et j'ai oublié mon mot de passe rsa. Récemment, j'ai commencé à travailler sur un projet java et je suis passé à bitbucket. Depuis, j'avais oublié le mot de passe et il n'y a aucun moyen de le récupérer, je suppose, j'ai décidé d'utiliser le protocole https (recommandé) pour le nouveau projet et j'ai obtenu la même erreur posée dans la question.

Comment je l'ai résolu?

  1. Exécutez cette commande pour dire à mon git d'utiliser https au lieu de ssh:

    git config --global url."https://".insteadOf git://
    
  2. Retirez toute télécommande, le cas échéant

    git remote rm origin
    
  3. Refaire tout de git init à git push et ça marche!

PS: J'ai également désinstallé ssh de ma machine pendant le processus de débogage en pensant que le supprimer résoudra le problème. Oui je sais!! :)

3AK
la source
Je ne pense pas que ce soit une bonne idée de diriger les gens vers https, alors que ssh est également censé fonctionner. En outre, il est peu probable que cela fonctionne pour les personnes derrière un proxy d'entreprise.
Igor Stoppa
8

Problème résolu si vous modifiez l'accès ssh en accès https au référentiel distant:

git remote set-url origin https_link_to_repository

git push -u origin master
George mano
la source
5

Je pense que j'ai la meilleure réponse pour vous, vos applications git lisent votre id_rsa.pub dans le répertoire utilisateur racine

/home/root/.ssh/id_rsa.pub

C'est pourquoi votre clé dans /home/your_username/.ssh/id_rsa.pub ne peut pas être lue par git. Vous devez donc créer la clé dans /home/root/.ssh/

$ sudo su
$ ssh-keygen
$ cd ~/.ssh
$ cat id_rsa.pub

Copiez ensuite la clé dans votre compte github. Ça a marché pour moi. Tu peux l'essayer.

digembok
la source
Cela m'a permis de trouver la réponse que je cherchais. J'ai couru clone avec sudo par habitude, donc il cherchait les mauvaises informations d'identification. J'ai enlevé le sudo et mon clone a bien fonctionné.
Taekahn
4

Si vous avez déjà créé une clé SSH et que vous obtenez toujours l'erreur, c'est parce que vous devez donner à l'utilisateur les autorisations de lecture et d'écriture dans le dossier dans lequel vous clonez. Pour ce faire, sudo chmod 777 <your_folder_name_here>". Bien sûr, c'est après avoir généré une clé SSH et vous obtenez toujours cette erreur. J'espère que cela aidera les futurs utilisateurs.

Éditer

Pour ajouter à cela, utilisez admin dans Windows si vous utilisez le git bash

Kevin
la source
Cette. Cela peut également provoquer le problème.
KevinO
1
C'était mon problème, mais je ne recommanderais pas de définir des autorisations 777 sur un dossier. Dans mon cas, le dossier appartenait à l'utilisateur root, et je devais lui donner accès à mon compte utilisateur non root. J'ai fait ça comme ça:sudo chown -R $USER:$USER <your_folder_name_here>
David
@David, je le recommande également. 777 est assez hacky et pas sécurisé.
Kevin
3

J'ai eu le même problème récemment. Cela peut être utile si vous avez besoin d'un correctif immédiatement, mais cela doit être fait à chaque fois que vous redémarrez votre système

Depuis le terminal, exécutez: ssh-add ~/.ssh/id_rsa

Entrez votre mot de passe système et cela devrait fonctionner.

user7506706
la source
3

Je voudrais ajouter certaines de mes conclusions:

Si vous utilisez GitBash, assurez-vous que la clé SSH est stockée dans ~/.ssh/id_rsa.

Par défaut GitBashrecherche ~/.ssh/id_rsacomme chemin par défaut pour la clé SSH.

Même le nom de fichier est id_rsaimportant. Si vous enregistrez votre clé SSH dans un autre nom de fichier ou chemin d'accès, il lancera lePermission Denied(publickey) erreur.

imflash217
la source
3

OK, il y a peu de solutions à celle-ci, certaines d'entre elles ont peut-être déjà été mentionnées mais juste pour les garder ensemble:

  • assurez-vous que vos clés sont présentes, par défaut un autre dossier ~ / .ssh /, c'est-à-dire id.rsa et id.rsa.pub

  • assurez-vous que les clés ont les autorisations correctes, vous pouvez exécuter chmod:

    chmod 600 ~ / .ssh / id_rsa

    chmod 644 ~ / .ssh / id_rsa.pub

  • assurez-vous que le contenu de votre clé publique (id_rsa.pub) correspond à celui téléchargé dans la configuration du référentiel distant

  • Enfin, corrigez les problèmes avec l'agent ssh : ssh-add

Quelques informations supplémentaires: https://itcodehub.blogspot.com/2015/01/ssh-add-problems-with-ssh-agent-and.html

xproph
la source
J'avais copié ma clé ssh d'un ordinateur à un autre à l'aide d'un lecteur USB formaté en FAT32. Cela a changé les autorisations des fichiers. Sur Ubuntu, j'ai l'habitude d'être automatiquement demandé le mot de passe SSH en cas de besoin, mais cela ne s'est produit silencieusement que lorsque j'ai couru chmodcomme vous le décrivez. Merci.
lydell
1

Si vous utilisez l'interface utilisateur de GitHub pour Mac, vérifiez les préférences pour vous assurer que vous êtes connecté.

juliarm
la source
1

J'obtenais la même erreur pendant 'git push'. Côté client j'avais deux origines et un master. J'en ai retiré un, puis ça a bien fonctionné.

Pabitra Dash
la source
1

vous pouvez utiliser l'URL Https pour vous connecter

je suppose que vous essayez de vous connecter avec ssh url lorsque vous dites git push si cela ne demande que le mot de passe, considérez que vous vous connectez via ssh.better vous utilisez http url.

venkat razesh
la source
1

Également dans Ubuntu, même s'il y avait déjà une clé SSH entrée dans les paramètres de BitBucket, j'ai eu ce problème. La raison en était que j'essayais ce qui suit:

sudo git push origin master

Je ne sais pas pourquoi, mais cela a été résolu en utilisant

git push origin master

Aucun sudo utilisé.

Nabin
la source
1

Pour moi, j'ai essayé cela -

eval "$(ssh-agent -s)"

alors je cours

ssh-add ~/.ssh/path-to-the-keyfile

et pour générer la clé que vous pouvez exécuter

ssh-keygen -t rsa -b 4096 -C "[email protected]"

cela générera la paire de clés (publique et privée).

vous pouvez stocker cette clé dans github pour en savoir plus lire ceci Ajout d'une nouvelle clé SSH à votre compte GitHub

J'espère que cela aidera les autres :)

Joomler
la source
1

J'avais un problème similaire à @Batman. Cependant, parce que je l'exécutais sous / usr / local / src / projectname, l'exécution sans sudo n'était pas une option.

Ajoutez simplement le drapeau -E pour pré-vérifier l'environnement (votre ~ / .ssh / chemin).

$ sudo -E git clone git@your_repo

De l'homme sudo:

-E, --preserve-env Indique à la politique de sécurité que l'utilisateur souhaite conserver ses variables d'environnement existantes. La politique de sécurité peut renvoyer une erreur si l'utilisateur n'est pas autorisé à préserver l'environnement.

Justin
la source
1

Une fois que cela se produira, vous suivrez les instructions GitHub après avoir créé votre référentiel. Git vous demandera d'ajouter votre télécommande avec quelque chose comme ça.

git remote add origin [email protected]:<user>/<project>.git

Remplacez le contenu de <> par des valeurs liées à votre compte.

La solution consiste à supprimer le .gitsuffixe. Ajoutez la télécommande comme suit:

git remote add origin [email protected]:<user>/<project>

Litehouse
la source
1

tl; dr

en ~/.ssh/configvente

PubkeyAcceptedKeyTypes=+ssh-dss

Scénario Si vous utilisez une version d'openSSH> 7, comme sur un MacBook Pro à barre tactile, c'estssh -V
OpenSSH_7.4p1, LibreSSL 2.5.0

Vous aviez également un ancien Mac qui avait à l'origine votre clé que vous avez mise sur Github, il est possible qu'il utilise une clé id_dsa. OpenSSH v7 ne met pas par défaut l'utilisation de ces clés DSA (qui les incluent ssh-dss), mais vous pouvez toujours les rajouter en mettant le code suivant dans votre~/.ssh/config

PubkeyAcceptedKeyTypes=+ssh-dss

La source qui a fonctionné pour moi est cette newsletter Gentoo

Maintenant, vous pouvez au moins utiliser GitHub, puis corriger vos clés sur RSA.

pjammer
la source
1

J'ai trouvé cette page lors de la recherche d'une solution à un message d'erreur similaire à l'aide git pulld'un hôte distant:

$ git pull
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

J'étais connecté de ma machine locale à l'hôte distant via ssh -AY remote_hostname. Ce n'est pas une solution à la question d'OP, mais utile pour ceux qui rencontrent cette page, alors postez-la ici.

Notez que dans mon cas, git pullfonctionne bien sur ma machine locale (c'est-à-dire que la clé ssh a été configurée et ajoutée au compte GitHub, etc.). J'ai résolu mon problème en ajoutant ceci ~/.ssh/configsur mon ordinateur portable:

Host *
     ForwardAgent yes

Je me suis ensuite reconnecté à l'hôte distant avec ssh -AY remote_hostname, et git pullmaintenant j'ai travaillé. Le changement dans la configuration permet de transférer ma paire de clés ssh de ma machine locale vers n'importe quel hôte. L' -Aoption de sshréellement le transmettre dans cette session ssh. Voir plus de détails ici.

Timur Shtatland
la source
0

Peut-être que votre agent ssh n'est pas activé Vous pouvez l'essayer

  1. Télécharger git

http://git-scm.com/

  1. Installez-le

  2. Activer ssh-agent

C: \ Program Files \ Git \ cmd

start-ssh-agent

徐啟倫
la source
0

Accédez au tableau de bord de votre compte GitHub, recherchez votre référentiel de projet, cliquez sur l' onglet Paramètres - sous Déployer les clés, vous devrez ajouter votre clé SSH. Ouvrez Terminal et saisissez:

cat ~/.ssh/id_rsa.pub | pbcopy 

Cela copiera la clé de votre fichier id_rsa.pub. Il suffit donc de revenir au tableau de bord GitHub, de le coller, de cliquer sur Ajouter une clé et c'est tout.

La même solution s'applique aux comptes Bitbucket.

ajlaracast
la source