web-dev-qa-db-fra.com

autorisation git Push heroku master refusée

Je suis le Ruby.railstutorial. Je lance la commande "git Push heroku master" et il crache cette erreur.

Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

Je suis dans mon application Rails "/ Users/lexi87/Rails_projects/first_app". Des solutions?

51
Cornelius Wilson

Le meilleur moyen d'éviter de telles erreurs consiste à utiliser une paire de clés publique/privée et non une clé supplémentaire pour heroku. De cette façon, vous (ou votre système) ne pouvez pas choisir une mauvaise clé pour vous connecter à heroku.

Si vous obtenez cette erreur, vous avez commis une erreur. Consultez ce site: https://devcenter.heroku.com/articles/keys

Si vous rencontrez cette erreur, le mieux est de supprimer les clés inutiles et d’en utiliser une seule.

Si vous avez besoin de plus d'une paire de clés sur votre système, vous pouvez définir une clé pour heroku. Cela se fait via la commande suivante:

heroku keys:add
67
Fa11enAngel

Aide pour les utilisateurs de Windows 7 avec le client Windows Github installé:

Même si heroku toolbelt a signalé la découverte de ma clé publique git_hub et son téléchargement, "git Push heroku master" a échoué. Après avoir suivi les étapes ci-dessous, cela fonctionne bien. 

  1. Créez un dossier .ssh sous votre dossier utilisateur s'il n'en existe pas. Siit le fait, supprimez tous les fichiers qu'il contient (cela suppose que vous êtes en mesure de recommencer à zéro avec les clés ssh). 

  2. Dans l'Explorateur Windows, cliquez avec le bouton droit sur le dossier . ssh et choisissez Git bash dans le menu contextuel. Ceci est installé avec le logiciel client Github Windows. 

  3. Dans la fenêtre bash, entrez ssh-keygen -t rsa -C "[email protected] "à l'invite, entrez un mot de passe (Ne le perdez pas).

  4. Fermez la fenêtre bash shell.

  5. À partir d'une invite de commande à la racine de votre projet, entrez heroku keys:add. Ceci trouvera et téléchargera la clé que vous venez de créer à partir de votre fichier /.ssh vers Heroku.

Maintenant, vous pouvez entrer git Push heroku master pour pousser votre application jusqu'à Heroku. Remarque: vous devrez ajouter votre clé publique ssh nouvellement générée à votre compte Github lorsque vous aurez terminé.

13
mjulmer

J'ai fait face au même problème. Dans mon dossier .ssh, j'avais un fichier appelé "Hôtes connus". Je n'arrêtais pas d'essayer de supprimer et de créer de nouvelles clés SSH, cela ne fonctionnait pas. En fin de compte, je viens de supprimer tout ce qui se trouve dans le .ssh, y compris les «hôtes connus», puis de créer une nouvelle clé RSA en utilisant:

ssh-keygen -t rsa

puis j'ai ajouté cette nouvelle clé à heroku en utilisant:

heroku keys:add

créez ensuite un nouveau référentiel heroku et appuyez mon application dessus:

heroku create
git Push heroku master
8
Adam Labi
ssh-keygen -t rsa

Ce qui précède est facultatif car vous pouvez également créer un lien vers une clé existante. Heroku vous invitera à sélectionner la clé à l'étape suivante.

heroku keys:add

Ajoutez votre clé nouvellement créée ou une clé existante. Si le problème persiste, vous devrez probablement ajouter la clé à la liste des clés ssh de votre ordinateur en procédant comme suit:

ssh-add ~/.ssh/name_of_your_rsa

et confirmez que votre ssh a bien été ajouté

ssh-add -l

Cela devrait vous donner accès au repo distant de Push to Heroku.

4
ajhino

sur OSX, je rencontrais le même problème, je devenais

no such identity: /Users/me/.ssh/yourPrivateKey: No such file or directory
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 créer une nouvelle clé avec ssh-keygen -t rsa puis de l'ajouter avec des clés heroku: add, mais cela n'a pas aidé.

Ensuite, j'ai trouvé un fichier nommé config in ~/.ssh /, et à l'intérieur du fichier se trouvait:

ServerAliveInterval 300
ServerAliveCountMax 3

Host heroku.com
    user git
    hostname heroku.com
    identityfile ~/.ssh/yourPrivateKey

J'ai donc changé yourPrivateKey en mon nom de fichier de clé privée ( id_rsa par défaut) aa et cela a fonctionné :)

2
wiherek

Si vous travaillez sous Windows, veillez à utiliser git-bash au lieu de Powershell/Invite de commandes.

Si vous voulez juste réinitialiser vos clés ssh:

  1. supprimer le répertoire .ssh de votre utilisateur
  2. ouvrir git-bash 
  3. ssh-keygen -t rsa
  4. clés heroku: ajouter

et alors vous pourrez git Push.

0
Guildenstern70

J'ai créé une clé avec 

ssh-keygen -t rsa

et utilisé un nom de fichier différent de id_rsa (dans mon cas, heroku). J'ai ajouté la clé à heroku avec

heroku keys:add

En essayant de pousser ma branche maîtresse à heroku, j'ai toujours reçu l'erreur suivante: 

$ git Push maître heroku
L'authenticité de l'hôte 'heroku.com
(50.19.85.132) 'ne peut être établi. L'empreinte de la clé RSA est
8b: 48: 5e: 67: 0e: c9: 16: 47: 32: 99: 87: 0c: 1f: c8: 60: bb. Êtes-vous sûr que vous voulez
continuer la connexion (oui/non)? oui Attention: ajouté en permanence
'heroku.com, 50.19.85.132' (RSA) à la liste des hôtes connus. Autorisation
refusé (publickey). fatal: Impossible de lire à partir du référentiel distant. 

Assurez-vous de disposer des droits d'accès et du référentiel appropriés existe. 

Comme j'ai remarqué, git n'utilisait ma clé id_rsa que depuis un autre accès ssh (vous pouvez le vérifier via votre git gui: Aide -> clés SSH).

J'ai renommé mon répertoire .ssh C:\Utilisateurs \% nom_utilisateur% .ssh en .ssh.bak et ai copié ma clé privée/publique heroku (à partir du fichier .ssh.bak répertoire) dans un répertoire .ssh nouvellement créé et nommé id_rsa (et id_rsa.pub). 

Pousser maintenant a fonctionné comme prévu:

git Push heroku master
0