2010-08-28 26 views
17

Je viens d'acheter un nouvel ordinateur et j'essaie de cloner mon projet heroku dessus.git clone heroku ssh permission refusée

Voici ce que j'ai fait jusqu'ici. Je n'ai pas inclus la trace, mais tout a été sauvegardé au bon endroit, et les fonctions ont fonctionné sans erreurs.

>> sudo ssh-keygen 
>> heroku keys:add 
>> sudo git clone -o heroku [email protected]:myapp.git 

Initialized empty Git repository in /Users/macuser/Sites/shwagr/shwagr/.git/ 
Permission denied (publickey). 

Alors j'entendu parler de le faire par bash ssh ..

>ssh-agent bash 
>ssh-add ~/.ssh 

Permissions 0777 for '/Users/macuser/.ssh' are too open. 
It is recommended that your private key files are NOT accessible by others. 
This private key will be ignored. 

Quoi? Ok papa ..

>>sudo chmod 700 ~/.ssh 
>>ssh-agent bash 
>>ssh-add ~/.ssh 
Enter passphrase for /Users/macuser/.ssh: 
Bad passphrase, try again for /Users/macuser/.ssh: 
Bad passphrase, try again for /Users/macuser/.ssh: 
Bad passphrase, try again for /Users/macuser/.ssh: 
Bad passphrase, try again for /Users/macuser/.ssh: 
Bad passphrase, try again for /Users/macuser/.ssh: 
Bad passphrase, try again for /Users/macuser/.ssh: 

Je ne sais pas ce que le mot de passe est ici, mais il est certain est pas moi qui a mis celui-ci. Si j'appuie simplement sur Entrée/Sortie, ça sort, mais ça ne me donne pas l'impression que ça marche. Et conséquemment, il ne me permet toujours pas de cloner le dépôt.

Des idées?

MISE À JOUR Je suis allé dans mon fichier ~/.ssh et effectué ssh-keygen -t rsa et je l'ai fait une nouvelle clé appelée love. Ensuite, je heroku keys:add love.pub avec succès.

Puis je suis allé clone git ..

sudo git clone -o heroku [email protected]:mysite.git 

Initialized empty Git repository in /Users/macuser/Sites/shwagr/shwagr/.git/ 
Permission denied (publickey). 

MISE À JOUR 2

Je supprimé ~/.ssh, et recréée sans sudo. Puis j'ai enlevé toutes les clés que j'avais créées aujourd'hui de heroku, et j'ai recommencé le processus.

Même erreur.

Mise à jour 3

>>heroku keys 

    No Keys for this computer. 

>>sudo heroku keys 

    No Keys for this computer 

>>heroku keys:add 

>>heroku keys 

ssh-rsa AAAA...J67lw== [email protected] 

ces touches à Comparés mes clés: Ils sont identiques. : D

Autorisation refusée.

tentative 4

touches Heroku: clear rm -rf ~/.ssh mkdir ~/.ssh cd ~/.ssh ssh-keygen -t rsa touches Heroku : ajouter cd/Users/macuser/Sites/ clone git -o heroku [email protected] sudo: shwagr.git

Échec.

fatale: L'extrémité distante a raccroché inopinément

Grosse mise à jour

viens de découvrir que git est en fait vide.Et c'est juste un lien symbolique (quand vous lui attachez un vrai domaine, il utilise toujours l'ancien comme le véritable repo). Donc quand j'ai tiré l'un des noms par défaut d'Heroku, comme smooth-buttery-back-52.git, ça tirait et fonctionnait, et c'était en fait mon référentiel.

+0

> Mise à jour 2 <: Vous utilisez les touches de 'Heroku: clear' ou howd vous allez sur il? – prodigitalson

+0

Je ne voulais pas faire cela parce qu'il y a des clés pour les utilisateurs impliqués dans le projet là-dessus. Je viens d'enlever ceux qui se rapportent à cet ordinateur. – Trip

+0

@trip: donc vous avez fait 'heroku keys: supprimer votre user @ yourhost'? Quelle est la sortie des 'clefs heroku' et des' sudo heroku keys'? – prodigitalson

Répondre

6
>> sudo ssh-keygen 

NO. Déposez le sudo. Cela va créer des clés pour l'utilisateur root, pas pour votre utilisateur. Eh bien, à moins bien sûr pour une raison étrange, vous voulez utiliser la racine. Mais alors vous devez préfixer toutes les commandes liées qui vont utiliser cette clé avec sudo.

+0

sauvegardez votre config ssh: 'mv ~/.ssh ~/ssh.bak' (utilisez sudo si nécessaire car vous vous êtes peut-être bloqué par inadvertance). puis 'ssh-keygen' à nouveau. Si vous avez quelque chose de spécial dans votre 'ssh.back/config', copiez-le sur le fichier nouvellement généré. – prodigitalson

+2

depuis que vous venez d'acheter un nouvel ordinateur. restaurez-le et n'utilisez jamais sudo, à moins que vous ne le deviez vraiment. utiliser RVM et homebrew et rester local :) vous êtes officiellement dans l'enfer des autorisations. –

+0

Id deuxième ce que dit Jed bien que je ne pense pas que vous devriez abandonner sudo, vous devriez apprendre ce que cela signifie et les implications et ensuite l'utiliser si nécessaire. Aussi, je recommande macports sur homebrew, mais c'est vraiment une chose de préférence personnelle. – prodigitalson

1

vous avez fait une clé pour votre compte sudo, mais pas pour votre compte utilisateur et vous n'avez pas sudo heroku keys:add donc il a téléchargé la clé de l'utilisateur local pas la clé sudo, je devine. Pourquoi voudriez-vous que votre application locale dans votre répertoire personnel ait des autorisations sudo de toute façon? Je serais probablement x le sudo et le faire comme votre utilisateur suivant ce tutoriel: http://docs.heroku.com/keys

+0

il ne me laissera pas >> amour ouvert a échoué: Permission refusée. L'enregistrement de la clé a échoué: amour. – Trip

+0

@Trip: voir mon commentaire sur ma réponse pour savoir comment réparer ... vous avez fait un boulot à ce moment-là et vous avez besoin de le bombarder de l'espace ... c'est la seule façon d'être sûr. – prodigitalson

+0

je l'ai fait et mis à jour mon asnwer. même problème. Y a-t-il un purgatoire d'autorisations? – Trip

11

J'ai suivi les étapes fournies par heroku et cela a fonctionné. Une fois que vous avez généré des clés ssh (peu importe ce que vous appelez les fichiers), faites ce qui suit:

> heroku login 
> heroku keys:add 

La première instruction vous demande votre heroku ID utilisateur/mot de passe. Une fois authentifié, l'exécution de la seconde commande sélectionne toutes vos clés publiques et les envoie à heroku.com. Après cela, vous pouvez exécuter git clone et cela fonctionnera comme un charme!

+0

Eh bien, en fait "login heroku" a travaillé pour moi. Sans ajouter de clés à nouveau. Je vous remercie. – shadowhorst

2

Si vous avez déjà fait

heroku keys:add 

et obtenir encore erreur, s'il vous plaît essayez

ssh-add