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.
Réponses:
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.
la source
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.ssh -vT [email protected]
fournit de nombreuses informations expliquant pourquoi cela ne fonctionne pas.Avez-vous créé un fichier de configuration dans votre répertoire ~ / .ssh? Il devrait avoir un contenu comme ceux-ci:
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.
la source
ssh -T [email protected]
répondez correctement, tandis quegit push -u origin master
donne 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?Je connais ce problème. Après avoir ajouté la clé ssh, ajoutez également votre clé ssh à l'agent ssh (à partir des documents officiels )
Une fois que tout a bien fonctionné, git peut afficher la clé appropriée, avant de le faire.
la source
ssh-agent -s
ssh-add ~/.ssh/github_rsa
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 .
la source
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
l'url doit être quelque chose comme ssh: //[email protected]/YourDirectory/YourProject.git; si vous ne voyez pas [email protected], utilisez
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.
la source
En supposant que vous connectez GitHub via SSH, vous pouvez exécuter la commande ci-dessous pour le confirmer.
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.
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 .
la source
cat ~/.ssh/id_rsa.pub
Tout d'abord, nous devons vérifier les clés ssh existantes sur votre ordinateur. Ouvrez Terminal et exécutez:
et qui répertorie les fichiers dans votre répertoire .ssh
Et enfin en fonction de ce que vous voyez (dans mon cas était):
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)
la source
SHA
sortie vers github à partir de cette commande?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!
la source
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:
vous obtiendrez quelque chose comme:
copiez cette clé (valeur) et allez sur github.com et sous le paramètre (clé ssh et pgp) ajoutez votre clé publique.
la source
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:
1. Ouvrez ".gitmodules", et vous trouverez quelque chose comme ceci:
Modifiez la dernière ligne pour être le HTTPS du référentiel que vous devez extraire:
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:
Modifiez la dernière ligne pour être le HTTPS du référentiel que vous devez extraire:
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.
la source
cela a fonctionné pour moi:
1- Supprimer toutes les origines
(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é:
3- Ajouter un nouveau maître d'origine
c'est tout le monde!
la source
Assurez-vous d'
ssh-add -l
afficher 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-add
sur cette clé (trouvée dans~/.ssh
. Elle est nomméeid_rsa
par défaut, vous l'exécuterez donc probablementssh-add id_rsa
).Sinon, suivez ces instructions pour générer une paire de clés SSH.
la source
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?
Exécutez cette commande pour dire à mon git d'utiliser https au lieu de ssh:
Retirez toute télécommande, le cas échéant
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!! :)
la source
Problème résolu si vous modifiez l'accès ssh en accès https au référentiel distant:
la source
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
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/
Copiez ensuite la clé dans votre compte github. Ça a marché pour moi. Tu peux l'essayer.
la source
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
la source
sudo chown -R $USER:$USER <your_folder_name_here>
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.
la source
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
GitBash
recherche~/.ssh/id_rsa
comme chemin par défaut pour la clé SSH.Même le nom de fichier est
id_rsa
important. Si vous enregistrez votre clé SSH dans un autre nom de fichier ou chemin d'accès, il lancera lePermission Denied(publickey)
erreur.la source
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
la source
chmod
comme vous le décrivez. Merci.Si vous utilisez l'interface utilisateur de GitHub pour Mac, vérifiez les préférences pour vous assurer que vous êtes connecté.
la source
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é.
la source
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.
la source
É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:
Je ne sais pas pourquoi, mais cela a été résolu en utilisant
Aucun sudo utilisé.
la source
Pour moi, j'ai essayé cela -
alors je cours
et pour générer la clé que vous pouvez exécuter
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 :)
la source
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:
la source
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
.git
suffixe. Ajoutez la télécommande comme suit:git remote add origin [email protected]:<user>/<project>
la source
tl; dr
en
~/.ssh/config
venteScénario Si vous utilisez une version d'openSSH> 7, comme sur un MacBook Pro à barre tactile, c'est
ssh -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
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.
la source
J'ai trouvé cette page lors de la recherche d'une solution à un message d'erreur similaire à l'aide
git pull
d'un hôte distant: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 pull
fonctionne 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/config
sur mon ordinateur portable:Je me suis ensuite reconnecté à l'hôte distant avec
ssh -AY remote_hostname
, etgit pull
maintenant 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'-A
option dessh
réellement le transmettre dans cette session ssh. Voir plus de détails ici.la source
Peut-être que votre agent ssh n'est pas activé Vous pouvez l'essayer
http://git-scm.com/
Installez-le
Activer ssh-agent
C: \ Program Files \ Git \ cmd
start-ssh-agent
la source
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:
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.
la source