J'ai essayé de googler et de lire http://help.github.com/troubleshooting-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. J'ai réussi à créer des pensions et un Push -u Origin master
correct sur mon ordinateur portable, mais des problèmes se posent sur ce bureau.
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 du compte de github. J'ai vérifié que je n'avais pas collé d'espaces
4. J'ai créé un ~/.ssh/config avec le contenu suivant:
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
J'ai chmodé le .ssh à 700, id_rsa 600
5. J'ai ajouté le proper origine distante 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 non 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 souhaite la bienvenue a été ajouté à t
. Mon nom d'utilisateur github est medero
, pas medert
.
Salut mederot! Vous avez réussi authentifié, mais pas GitHub fournir un accès à Shell.
9. Je suis pas derrière un proxy ou un pare-feu
10. La clé est offerte, voici le résultat 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 git clone en utilisant ssh et 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 et mon jeton github:
$ git config --global github.user medero $ git config --global github.token 0123456789yourf0123456789tokenSets le jeton GitHub pour toutes les instances de git sur le système.
16. J'ai confirmé que mon nom d'utilisateur github n'est PAS mederot
et que mon jeton github IS est CORRECT selon la page de mon compte (validés les 2 premiers caractères et les 2 derniers caractères).
17. Pour confirmer # 16, ~/.gitconfig contient
[github]
token = mytoken...
user = medero
18. J'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, car lorsque je suis authentifié par ssh, le message d'accueil de l'utilisateur est mederot
et non pas medero
, ce qui est mon compte. Est-il possible que quelque chose dans mon compte github soit mal mis en cache?
Je soupçonne également des bizarreries de cache ssh locales, car si je mv ~/.ssh/id_rsa KAKA
et mv ~/.ssh/id_rsa.pub POOPOO
et que je fais ssh [email protected] -v
, il m’authentifie toujours et dit qu’il sert mon /home/meder/.ssh/id_rsa quand je l’ai renommé? Il doit être mis en cache?!
À l'étape 18, je suppose que vous voulez dire ssh-add ~/.ssh/id_rsa
? Si oui, cela explique ceci:
Je soupçonne également certains étranglements de cache ssh locaux, car si je mv ~/.ssh/id_rsa KAKA et mv ~/.ssh/id_rsa.pub POOPOO, et que je fais ssh [email protected] -v, cela m'authentifie toujours et dit mon /home/meder/.ssh/id_rsa quand je l'ai renommé?! Il doit être mis en cache?!
... 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 permettre que la même clé publique SSH soit ajoutée à deux comptes, car lorsque vous utilisez les URL [email protected]:...
, elle identifie l'utilisateur à l'aide de la clé SSH. (Cela ne devrait pas être permis est confirmé ici .)
Donc, je soupçonne (par ordre décroissant de probabilité) que l’un des cas suivants soit
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érifie s'il y a plus d'une identification existante Si oui, supprimez-la par ssh-add -d "ce fichier de clé"
Après avoir cherché Google pendant quelques jours, j'ai trouvé que c'était la seule question semblable à ma situation.
Cependant, je viens de résoudre le problème! Je mets donc ma réponse ici pour aider tous ceux qui recherchent ce problème.
Ouvrir "Keychain Access.app" (vous pouvez le trouver dans Spotlight ou LaunchPad)
Sélectionner "Tous les articles" dans la catégorie
Rechercher "git"
Supprimer tous les objets anciens et étranges
Essayez de pousser à nouveau et cela a juste travaillé
Si le problème se présente sous Windows, supprimez les informations d'identification de l'historique Windows.
C'est à cause d'un conflit.
Effacer toutes les clés de ssh-agent
ssh-add -d ~/.ssh/id_rsa
ssh-add -d ~/.ssh/github
Ajouter la clé github ssh
ssh-add ~/.ssh/github
Cela devrait fonctionner maintenant.
Je trouve que la solution est la même que celle fournie par @spyar, à savoir l'application Keychain Access stockée sous l'ancien nom d'utilisateur.
Il y a 2 solutions à cette situation:
Ou
dans
[email protected]: nom d'utilisateur/repo.git
J'espère que cela t'aides.
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é.
Sur Mac, si vous avez plusieurs connexions GitHub et que vous utilisez not en utilisant SSH, forcez la connexion correcte en utilisant:
git remote set-url Origin https://[email protected]/username/repo-name.git
Cela fonctionne également si vous rencontrez des problèmes pour accéder à un référentiel privé.
J'ai récemment rencontré ce problème sur un ancien dépôt sur ma machine qui avait été poussé vers le haut à l'aide de https. les étapes 5 et 6 ont résolu mon problème en réinitialisant l’URL distante de mon référentiel en utilisant l’URL https sur l’URL SSH.
vérifier que la télécommande utilise l'URL https
> git remote -v
Origin https://github.com/ExampleUser/ExampleRepo.git (fetch)
Origin https://github.com/ExampleUser/ExampleRepo.git (Push)
puis réinitialiser l’origine pour utiliser l’URL ssh
> git remote set-url Origin [email protected]:ExampleUser/ExampleRepo.git
vérification de nouvelle télécommande
> git remote -v
Origin [email protected]:ExampleUser/ExampleRepo.git (fetch)
Origin [email protected]:ExampleUser/ExampleRepo.git (Push)
pourrait maintenant avec succès git Push -u Origin
je ne suis toujours pas sûr du réglage que j'aurais changé et qui aurait pu faire échouer le Push lorsque la télécommande est https, mais c'était la solution à mon problème.
J'ai eu le même problème que toi. Après avoir passé beaucoup de temps sur Google, j'ai découvert que mon erreur était due à plusieurs utilisateurs qui avaient ajouté la même clé dans leurs comptes.
Voici donc ma solution: supprimez la clé ssh du mauvais utilisateur (je peux le faire car le mauvais utilisateur est aussi 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 va arriver.
Et je pense que votre problème peut être causé par une erreur de frappe dans le nom de votre compte.
J'ai rencontré cette erreur lors de l'utilisation de Travis CI pour deploy content , ce qui impliquait de transférer des modifications dans un référentiel.
J'ai finalement résolu le problème en mettant à jour le jeton GitHub personal access associé au compte Travis avec l'autorisation d'accès public_repo
scope:
Ce problème est également causé par:
Si vous êtes sur un mac/linux et utilisez 'ControlMaster' dans votre ~/.ssh/config, il se peut que certains processus maîtres du contrôle ssh soient en cours d'exécution.
Pour les trouver, lancez:
ps aux | grep '\[mux\]'
Et tuez ceux qui sont pertinents.
Pour moi, la solution suggérée par FAHID (pour Windows) et LEANNE (pour Mac) ne fonctionnait que. Merci à vous deux!
Moi aussi, je me suis heurté à cela. Ce qui l’a causé, c’est que lors du clonage du référentiel sur lequel j’appuyais mes modifications, j’ai récupéré l’URL de clone dans un onglet de navigation privée sans me connecter. Cela a conduit, pour une raison quelconque, à 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.