J'ai essayé de googler et de lire https://help.github.com/en/articles/connecting-to-github-with-ssh et divers guides. Je suis incapable de git push -u origin master
ou git push origin master
(la même commande).
J'ai mon compte git depuis au moins 2 ans environ. J'ai réussi à créer des dépôts et push -u origin master
bien sur mon ordinateur portable, mais sur ce bureau, j'ai des problèmes.
Voici ce que j'ai essayé:
1. J'ai configuré mon nom d'utilisateur git
2. J'ai configuré mon email d'utilisateur git
3. J'ai téléchargé le contenu de mon /home/meder/.ssh/id_rsa.pub sur la page de compte de github. J'ai vérifié que je n'ai collé aucun espace
4. J'ai créé un ~ / .ssh / config avec ce contenu:
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
J'ai chmodded le .ssh à 700, id_rsa 600
5. J'ai ajouté l' origine distante appropriée sans faire de fautes de frappe :git remote add origin [email protected]:medero/cho.git
6. Pour confirmer # 5, voici mon .git / config. Le répertoire est correct et pas un autre répertoire:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = [email protected]:medero/cho.git
7. ssh [email protected] -v
me donne une authentification réussie
8. Une chose étrange est que le nom d'utilisateur avec lequel il me salue a été t
ajouté. Mon nom d'utilisateur github est medero
, non medert
.
Salut Mederot! Vous vous êtes authentifié avec succès, mais GitHub ne fournit pas d'accès shell.
9. Je ne suis pas derrière un proxy ou un pare-feu
10. La clé est offerte, voici la sortie de -v
:
debug1: Host 'github.com' is known and matches the RSA host key. debug1: Found key in /home/meder/.ssh/known_hosts:58 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering public key: /home/meder/.ssh/id_rsa debug1: Remote: Forced command: gerve mederot debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: Pty allocation disabled. debug1: Server accepts key: { some stuff, dont know if i should share it debug1: Remote: Forced command: gerve mederot debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: Pty allocation disabled. debug1: Authentication succeeded (publickey).
11. Voici les commandes que j'ai utilisées
mkdir cho
git init
touch README
git add README
git commit -m 'test'
git remote add origin [email protected]:medero/cho.git
git push -u origin master
12. Je ne souhaite pas créer de nouvelle clé SSH.
13. Si je clone git en utilisant ssh et que je fais une édition, une validation et git push, j'obtiens exactement la même chose.
14. Voici l'erreur réelle:
$ git push
ERROR: Permission to medero/cho.git denied to mederot.
fatal: The remote end hung up unexpectedly
15. J'ai configuré mon nom d'utilisateur github et mon jeton github:
$ git config --global github.user medero $ git config --global github.token 0123456789yourf0123456789token Définit le jeton GitHub pour toutes les instances git sur le système
16. J'ai confirmé que mon nom d'utilisateur github n'est PAS mederot
et mon jeton github EST CORRECT par page de mon compte (validé les 2 premiers caractères et les 2 derniers caractères).
17. Pour confirmer # 16, ~ / .gitconfig contient
[github]
token = mytoken...
user = medero
18. Je l'ai fait ssh-key add ~/.ssh/id_rsa
si c'est même nécessaire ...
THÉORIES:
Je soupçonne qu'il y a quelque chose de louche parce que lorsque je suis authentifié par ssh, le message d'accueil de l'utilisateur l'est mederot
et non medero
, ce qui est mon compte. Quelque chose dans mon compte github pourrait-il être mis en cache de manière incorrecte?
Je soupçonne également une certaine bizarrerie de mise en cache ssh locale parce que si je mv ~/.ssh/id_rsa KAKA
et mv ~/.ssh/id_rsa.pub POOPOO
, et je le fais ssh [email protected] -v
, cela m'authentifie toujours et dit qu'il sert mon /home/meder/.ssh/id_rsa lorsque je l'ai renommé?! Il doit être mis en cache?!
Réponses:
À l'étape 18, je suppose que vous voulez dire
ssh-add ~/.ssh/id_rsa
? Si tel est le cas, cela explique ceci:... puisque le
ssh-agent
met en cache votre clé.Si vous regardez sur GitHub, il y a un compte mederot . Êtes-vous sûr que cela n'a rien à voir avec vous? GitHub ne devrait pas autoriser l'ajout de la même clé publique SSH à deux comptes, car lorsque vous utilisez les
[email protected]:...
URL, il identifie l'utilisateur en fonction de la clé SSH. (Le fait que cela ne devrait pas être autorisé est confirmé ici .)Donc, je soupçonne (par ordre décroissant de probabilité) que l'un des cas suivants est le cas:
Si 1 n'est pas le cas, je le signalerais à GitHub, afin qu'ils puissent en vérifier environ 2 ou 3.
Plus :
ssh-add -l vérifier s'il y a plus d'un identifiant si oui, le supprimer par ssh-add -d "ce fichier clé"
la source
ssh-add ...
chaque fois que je veux changer mes connexions github / ssh.ssh-add -d <keyfile>
cela ne fonctionne pas. (Suppression manuelle de ces fichiers.) La mise en cache que vous avez mentionnée doit être rechargée manuellement d'une manière ou d'une autre. Comment?ssh-add -d
-> "Impossible d'ouvrir une connexion à votre agent d'authentification."ssh-add
ce qui a fait ça pour moi. Merci!Après avoir cherché sur Google pendant quelques jours, j'ai trouvé que c'était la seule question similaire à ma situation.
Cependant, je viens de résoudre le problème! Je mets donc ma réponse ici pour aider quiconque recherche ce problème.
Voici ce que j'ai fait:
Ouvrez "Keychain Access.app" (vous pouvez le trouver dans Spotlight ou LaunchPad)
Sélectionnez "Tous les articles" dans la catégorie
Rechercher "git"
Supprimer tous les éléments anciens et étranges
Essayez de pousser à nouveau et cela a juste fonctionné
la source
old & strange
. Suis-je sur le point de gâcher un tas de trucs…?old & strange
choses signifient les anciens éléments de date et un e-mail ou un nom d'utilisateur incorrect. Vous pouvez trier le tableau parDate Modified
.Si un problème survient sur Windows, supprimez les informations d'identification de l'historique Windows.
supprimer les informations d'identification de git
la source
Sur Mac, si vous avez plusieurs connexions GitHub et que vous n'utilisez pas SSH, forcez la connexion correcte en utilisant:
Cela fonctionne également si vous rencontrez des problèmes pour pousser vers un référentiel privé.
la source
C'est dû à un conflit.
Effacer toutes les clés de ssh-agent
Ajouter la clé ssh github
Cela devrait fonctionner maintenant.
la source
ssh-add -D
supprime également toutes les identités, peut être utile si l'agent entre dans un état invalide.J'utilise Mac et le problème est résolu en supprimant l'enregistrement github de l'application d'accès au trousseau: voici ce que j'ai fait:
Les étapes ci-dessus sont copiées à partir de @spyar pour plus de facilité.
la source
Je trouve que la solution est la même que celle fournie par @spyar, qui est l' application Keychain Access stockée l'ancien nom d'utilisateur.
Il existe 2 solutions à cette situation:
Ou
dans
J'espère que cela t'aides.
la source
J'ai récemment rencontré ce problème pour un ancien repo sur ma machine qui avait été poussé à l'aide de https. les étapes 5 et 6 ont résolu mon problème en réinitialisant l'URL distante de mon dépôt en utilisant l'URL https vers l'URL ssh
vérifier que la télécommande utilise l'url https
puis réinitialiser l'origine pour utiliser l'url ssh
vérification d'une nouvelle télécommande
pourrait maintenant avec succès
git push -u origin
Je ne sais toujours pas quel paramètre j'aurais changé qui aurait pu provoquer l'échec du push lorsque la télécommande est https mais c'était la solution à mon problème
la source
J'ai eu le même problème que toi. Après une longue période de recherche sur Google, j'ai découvert que mon erreur était due à plusieurs utilisateurs qui avaient ajouté la même clé dans leurs comptes.
Alors, voici ma solution: supprimez la clé ssh du mauvais utilisateur (je peux le faire car le mauvais utilisateur est également mon compte). Si le mauvais utilisateur n'est pas votre compte, vous devrez peut-être changer votre clé ssh, mais je ne pense pas que cela se produira.
Et je pense que votre problème peut être causé par une erreur de frappe dans le nom de votre compte.
la source
Ce problème est également causé par:
Si vous êtes sur un mac / linux et que vous utilisez 'ControlMaster' dans votre ~ / .ssh / config, il se peut que certains processus maîtres de contrôle ssh soient en cours d'exécution.
Pour les trouver, exécutez:
Et tuez les plus pertinents.
la source
J'ai aussi rencontré cela, ce qui a causé cela pour moi, c'est que lors du clonage du dépôt vers lequel je poussais mes modifications, j'ai récupéré l'URL de clonage à partir d'un onglet de navigation privée sans me connecter (je ne sais toujours pas comment cela affecte). Cela a conduit pour une raison quelconque à git choisir un autre compte utilisateur. Lorsque je l'ai réessayé à partir d'une page de connexion appropriée, cela a fonctionné comme d'habitude pour moi.
la source
J'ai rencontré cette erreur lors de l'utilisation de Travis CI pour déployer du contenu , ce qui impliquait de pousser les modifications vers un référentiel.
J'ai finalement résolu le problème en mettant à jour le jeton d'accès personnel GitHub associé au compte Travis avec l'
public_repo
autorisation d'accès à l' étendue:la source