2012-11-13 114 views
6

之前上傳到Heroku很多次,並且不知道這次是什麼錯誤 - 也許是因爲我使用公共互聯網?Heroku - 添加SSH公鑰並仍然獲得權限被拒絕(publickey)錯誤

無論如何,所以我加入

>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的?

我檢查了我的鑰匙

的Heroku鍵

和我的終端上來正確,所以它應該是工作。任何人都會發光?

+1

運行'heroku apps'看看你的應用程序是否在那裏? –

回答

4

也許SSH會話不知道在哪裏可以找到有關你的公鑰私人關鍵,如果%HOME%沒有定義爲C:/Users/Chris它可以發生。

(記住,HOME默認情況下未在Windows中定義),您可以:

  • 確保HOME設置
  • 定義%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 
  • 在bash會議中,check the permissions(for .ssh和鑰匙)。
  • 克隆the heroku回購:git clone heroku:yourRepo
  • 做一些提交併從那裏推。
+0

受到時間限制,只是切換機器。我很快就會用這臺機器走上馬路,然後嘗試你的解決方案。謝謝您的幫助! –

2

您正在使用Git推送您的更改,而Git使用的是SSH,而不是Heroku。

根據我的經驗,運行heroku keys不會提供加載到SSH身份驗證代理的身份信息。爲此,您需要運行ssh-add -l,它將列出加載到其中的所有標識的指紋。

要將一個身份加載到您的SSH身份驗證代理中,您需要運行:ssh-add -K ~/.ssh/your_private_key。使用-K會將您的密碼存儲在您的鑰匙串中。

當然,如果你在遠程Heroku服務器上也有你的公鑰,這將起作用。

相關問題