2012-11-13 20 views
6

これまでに何度もHerokuにアップロードされていましたが、何が間違っているのか分かりません。私はHerokuのにプッシュすることができないのはなぜHeroku - SSH公開鍵を追加しましたが、パーミッションが拒否されました(公開鍵)エラー

とにかく、私は

>heroku keys:add 
Found existing public key: C:/Users/Chris/.ssh/id_rsa.pub 
Uploading SSH public key C:/Users/Chris/.ssh/id_rsa.pub...done 

>git push heroku master 
Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

で新しい公開鍵を追加しましたか?

は、私は私のキー

Herokuのキー

をチェックし、それが動作する必要がありますので、私の端末は、正しく思い付きました。誰でも光を放つ?

+1

'heroku apps'を実行すると、あなたのアプリがあるかどうか確認できますか? –

答えて

4

たぶんSSHセッションは、%HOME%C:/Users/Chrisに定義されていない場合に発生することができ、あなたの公開鍵に関連したプライベートキーを、どこにあるかを知りません。
(およびHOMEがWindowsにデフォルトで定義されていない、覚えておいてください)

次のことができます。

  • %HOME%/.ssh/configファイル
 
Host heroku 
Hostname heroku.com 
Port 22 
IdentitiesOnly yes 
IdentityFile /C/Users/Chris/.ssh/id_rsa # location and name of your private key 
TCPKeepAlive yes 
User git 
    を定義してくださいHOMEが
  • 設定されていることを確認
  • bashセッションの下にcheck the permissions(for .sshとキー)。
  • クローンherokuレポ:git clone heroku:yourRepo
  • いくつかをコミットし、そこから押してください。
+0

は時間の制約があり、マシンを切り替えるだけでした。すぐにこのマシンで再び道路に向かい、あなたのソリューションを試してみましょう。助けてくれてありがとう! –

2

Gitは変更をプッシュするために使用しています。GitはHerokuではなくSSHを使用しています。

私の経験から、heroku keysを実行しても、SSH認証エージェントにロードされたIDに関する情報は得られません。そのためには、ssh-add -lを実行する必要があります。にロードされたすべてのIDの指紋がリストされます。

SSH認証エージェントに1つのIDをロードするには、ssh-add -K ~/.ssh/your_private_keyを実行する必要があります。 -Kを使用すると、パスフレーズがキーチェーンに保存されます。

もちろん、リモートのHerokuサーバに公開鍵を持っていれば、これはうまくいきます。

関連する問題