git - open - www heroku com login




部署heroku代碼時,權限被拒絕(publickey)。 致命的:遠端意外掛斷 (20)

dmajkic的解決方案終於幫助了我:

對於Windows用戶,它可能意味著:git客戶端無法找到您的密鑰。 檢查c:\ Users \ UserName.ssh \中的鍵和! 環境變量HOME = c:\ Users \ UserName \

我試圖用下面的命令行將我的代碼部署到heroku:

git push heroku master

但出現以下錯誤:

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

我已經上傳了我的公共SSH密鑰,但它仍然出現此錯誤。


一個命令有效:

heroku keys:add

如果它不存在,它將成為一個。



分享我的經驗:

Git(我自己的安裝)正在尋找名為'id_rsa'的密鑰。

所以我嘗試將我的密鑰重命名為'id_rsa'和'id_rsa.pub' ,並且工作正常。

順便說一句,我敢肯定還有其他方法可以做到,但我還沒有看得更深。


嘗試所有這些想法後,我仍然遇到問題。 這是我的問題:

我的遠程heroku存儲庫已被取消。 我刷新它如下:

git remote -v

然後刪除那個錯誤的heroku:

git remote rm heroku

然後添加新的

git remote add heroku [email protected]:sitename.git

您可以從您的Heroku設置頁面獲取您的應用程序的網站名稱。 祝你好運!


在Windows 7,64位上,上述解決方案(Onur Turhan's)為我工作,稍作修改如下

C:\Users\MyName > heroku login

輸入電子郵件/密碼

C:\Users\MyName >ssh-keygen -t rsa -f id_rsa

這在我的c:\ Users \ MyName目錄中生成了兩個文件(id_rsa和id_rsa.pub)(不在.ssh目錄中)

heroku keys:add id_rsa.pub
git clone [email protected]:some-heiku-xxxx.git -o heroku

我猜想添加正確的“id_rsa.pub”文件是最重要的。使用keygen生成公鑰後,只需通過查看創建時的時間戳來驗證是否添加了正確的密鑰。


如果你是一個Windows用戶,這裡的其他解決方案可能無法解決你的問題。

我使用Windows 7 64位+ Git-1.7.7.1-preview20111027,解決方案是將我的密鑰從C:\users\user\.ssh複製到C:\Program Files (x86)\Git\.ssh 。 這是git客戶端在推向heroku時尋找密鑰的地方。

我希望這有幫助。


如果您已上傳密鑰,則嘗試刪除密鑰,然後使用新密鑰重新上傳密鑰。

 heroku keys:remove //removes the existing key
 ssh-keygen -t rsa //generates a new key in ~/.ssh folder
 heroku keys:add    //uploads the new key, if no arguments r passed then the key generated                              
                    //in default directroy i.e., ~/.ssh/id_rsa is uploaded
 git push heroku

這應該工作。


對於所有在Windows 7上嘗試上述所有內容並仍然無法使用的人,下面是我所做的: - 從Git目錄C:\ Program Files(x86)\ Git \(don')打開GitBash.exe。不要打開命令提示符,這將不起作用)。 - above添加以下內容,但必須刪除#

Host heroku.com
Hostname heroku.com 
Port 22 
IdentitiesOnly yes 
IdentityFile ~/.ssh/ssh-dss
TCPKeepAlive yes 
User [email protected]

現在運行git push heroku master ,它應該工作。


您必須將您的公鑰上傳到Heroku:

heroku keys:add ~/.ssh/id_rsa.pub

如果您沒有公鑰,Heroku會提示您自動添加一個無縫工作的公鑰。 只需使用:

heroku keys:add

要清除你之前的所有鍵,

heroku keys:clear

要顯示所有現有的密鑰,請執行

heroku keys

編輯:

以上似乎並沒有為我工作。 我搞砸了HOME環境變量,所以SSH在錯誤的目錄中搜索密鑰。

要確保SSH檢查正確目錄中的密鑰,請執行以下操作:

ssh -vT [email protected]

其中將顯示以下(示例)行

OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Connecting to heroku.com [50.19.85.156] port 22.
debug1: Connection established.
debug1: identity file /c/Wrong/Directory/.ssh/identity type -1
debug1: identity file /c/Wrong/Directory/.ssh/id_rsa type -1
debug1: identity file /c/Wrong/Directory/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version Twisted
debug1: no match: Twisted
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Host 'heroku.com' is known and matches the RSA host key.
debug1: Found key in /c/Wrong/Directory/.ssh/known_hosts:1
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: Trying private key: /c/Wrong/Directory/.ssh/identity
debug1: Trying private key: /c/Wrong/Directory/.ssh/id_rsa
debug1: Trying private key: /c/Wrong/Directory/.ssh/id_dsa
debug1: No more authentication methods to try.

Permission denied (publickey).

從上面可以看到,ssh在/c/Wrong/Directory/.ssh目錄中查找密鑰,這不是我們剛才添加到heroku中的公鑰所在的位置(使用heroku keys:add ~/.ssh/id_rsa.pub )( 請注意,在windows操作系統~指的是在贏得 heroku keys:add ~/.ssh/id_rsa.pub HOME路徑是C:\Users\UserName

要查看您當前的主目錄,請執行以下操作: echo $HOMEecho %HOME% (Windows)

要正確設置您的HOME目錄(正確指我的.ssh目錄的父目錄,以便ssh可以在正確的目錄中查找關鍵字)引用這些鏈接:

  1. SO回答如何永久設置Unix環境變量

  2. SO有關ssh在錯誤的目錄中尋找密鑰的問題以及相同的解決方案。


我只想補充說目錄不一定是C:\ Users \ [username] \。ssh。 它是您在其中創建公鑰的目錄。

例如,我在Windows中的主目錄已更改為C:\ [用戶名]。 您的.ssh子文件夾中的主目錄是您創建密鑰的最佳位置。 您可以使用以下命令在Windows中檢查您的主目錄:

    echo %HOMEPATH%

我必須做:

$ ssh-keygen -t rsa  
$ heroku keys:add  

然後它工作:

$ git push heroku master  

我有同樣的問題,因為我沒有公鑰,所以我做到了:

heroku keys:clear
heroku keys:add

這將生成一個公鑰,然後運行良好


我自殺了3天,嘗試了所有可能的組合,試圖使其發揮作用 - 我終於嘗試製作DSA密鑰,並且它工作正常。

如果它不適合你,請嘗試使用DSA而不是RSA。

(我使用的是Ubuntu 11.10,ruby 1.8.7,heroku 2.15.1)


我遇到的問題是在Windows上,每當我運行“heroku keys:add”時,它都會選擇github密鑰。 所以這裡是我遵循的步驟來解決問題

  1. 轉到“文檔和設置”文件夾下的.ssh目錄並刪除了git集線器密鑰
  2. 運行命令heroku keys:add

上面的命令要求我生成一個新的密鑰,以下是輸出無法找到現有的公鑰。 你想生成一個嗎? [Yn]是生成新的SSH公鑰。 上傳SSH公鑰C:/ Documents and Settings / Admin / .ssh / id_rsa.pub ... done! 'heroku'寶石已被棄用,取而代之的是Heroku Toolbelt,從https://toolbelt.heroku.com下載並安裝。

  1. 重新運行命令heroku keys:add

上述命令不會給出以下輸出:找到現有公鑰:C:/ Documents and Settings / Admin / .ssh / id_rsa.pub上傳SSH公鑰C:/ Documents and Settings / Admin / .ssh / id_rsa.pub ..完成

  1. 現在使用git push heroku master

對於我來說,使用上述步驟解決了問題,並且能夠在雲上部署應用程序。


推動正在為我工作,然後突然停下來。

如果heroku api遇到停機時間,當您嘗試推送時,您會看到此錯誤。

檢查:

https://status.heroku.com/

之前太瘋狂了。


當我的機器上安裝了TortoiseGIT時,我遇到了這個問題。 在改變環境變量GIT_SSH

"c:\Program Files\TortoiseGit\bin\TortoisePlink.exe"

"c:\Program Files (x86)\Git\bin\ssh.exe"

並遵循本教程與ssh-keygenkeys:add ,它的工作原理!


要遵循的順序

$ heroku login
$ ssh-keygen -t rsa
$ heroku keys:add

當執行第二條語句時,它會要求輸入,只需按Enter (返回)三次,就會添加一個鍵。


這是對我有用的東西。 heroku網站未被添加到您的已知主機。 轉到window-other-show view-git-git存儲庫。 從那里克隆存儲庫。 一旦你克隆它,刪除剛剛創建的存儲庫,然後從文件菜單中導入它。 這樣做是因為在克隆存儲庫時,它不會將其添加到資源管理器視圖。 現在你應該有git倉庫和資源管理器視圖。


這聽起來像你的~/.ssh/authorized_keys文件沒有正確設置。 確認:

  • 這是在正確的道路上。
  • 該文件的權限是0600。
  • ~/.ssh的權限是0700。




public-key