簡體   English   中英

git push heroku master權限被拒絕

[英]git push heroku master permission denied

我正在關注ruby.railstutorial。 我運行命令“git push heroku master”,它會吐出這個錯誤。

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

我在我的rails app“/ Users / lexi87 / rails_projects / first_app”里面。 有解決方案嗎

避免此類錯誤的最佳方法是使用一個公鑰/私鑰對,而不是heroku的額外密鑰。 這樣您(或您的系統)就無法選擇錯誤的密鑰來登錄heroku。

如果您收到此錯誤,則說您做錯了。 請訪問此站點: https//devcenter.heroku.com/articles/keys

如果您發生此錯誤,最好的方法是刪除不必要的密鑰並僅使用一個。

如果系統上需要多個密鑰對,則可以為heroku設置一個密鑰。 這是通過以下命令完成的:

heroku keys:add

安裝了Github Windows客戶端的Windows 7用戶的一些幫助:

即使heroku toolbelt報告它發現了我的git_hub公鑰並上傳了它,'git push heroku master'也失敗了。 采取以下步驟后,它工作正常。

  1. 如果不存在,請在User文件夾下創建.ssh文件夾。 如果是,請刪除其中的所有文件(假設您可以使用ssh鍵從頭開始)。

  2. 在Windows資源管理器中,右鍵單擊.ssh文件夾,然后從上下文菜單中選擇Git bash。 它與Github Windows客戶端軟件一起安裝。

  3. 在bash窗口中輸入ssh-keygen -t rsa -C "yourname@email.com ”當提示時輸入密碼(不要丟失)。

  4. 關閉bash shell窗口。

  5. 從項目根目錄中的cmd提示符輸入heroku keys:add 這將找到您剛從/.ssh文件創建的密鑰並將其上傳到Heroku。

現在你可以輸入git push heroku master來推送你的應用程序到Heroku。 注意:完成后,您需要將新生成的ssh公鑰添加到Github帳戶。

我遇到了同樣的問題。 在我的.ssh文件夾中,我有一個名為“已知主機”的文件。 我一直試圖刪除並創建它不起作用的新ssh密鑰。 最后我刪除了.ssh中的所有內容,包括'Known Hosts',然后使用以下命令創建了一個新的rsa密鑰:

ssh-keygen -t rsa

然后我使用以下方法將這個新密鑰添加到heroku:

heroku keys:add

然后創建一個新的heroku repo並將我的應用推送到它:

heroku create
git push heroku master
ssh-keygen -t rsa

以上是可選的,因為您也可以鏈接到現有密鑰。 Heroku將提示在下一步中選擇密鑰。

heroku keys:add

添加新創建的密鑰或現有密鑰。 如果您仍然遇到此問題,則很可能需要通過執行以下操作將密鑰添加到計算機的ssh密鑰列表中:

ssh-add ~/.ssh/name_of_your_rsa

並確認您的ssh已添加

ssh-add -l

這可以讓你訪問Heroku的遠程倉庫。

在OSX上,我遇到了同樣的問題,我得到了

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.

我嘗試使用ssh-keygen -t rsa創建一個新密鑰,然后使用heroku密鑰添加它:add,但它沒有幫助。

然后我在〜/ .ssh /中找到了一個名為config的文件,在文件里面有:

ServerAliveInterval 300
ServerAliveCountMax 3

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

所以我將yourPrivateKey更改為我的私鑰文件名(默認為id_rsa )aaand it working :)

我創建了一個密鑰

ssh-keygen -t rsa

並使用了不同於id_rsa的文件名(在我的例子中是heroku)。 我把密鑰添加到了heroku中

heroku keys:add

在嘗試將我的主分支推送到heroku時,我總是收到以下錯誤:

$ git push heroku master
主機'heroku.com的真實性
(50.19.85.132)'無法建立。 RSA密鑰指紋是
圖8b:48:5E:67:0E:C9:16:47:32:99:87:0C:1F:C8:60:BB。 你確定要嗎?
繼續連接(是/否)? 是警告:永久添加
'heroku.com,50.19.85.132'(RSA)到已知主機列表。 允許
否認(公鑰)。 致命:無法從遠程存儲庫讀取。

請確保您具有正確的訪問權限並且存儲庫存在。

我注意到git只使用了另一個ssh-access的id_rsa密鑰(你可以通過你的git gui檢查:幫助 - > SSH密鑰)。

我將.ssh目錄C:\\ Users \\%username%.ssh命名.ssh.bak並將我的heroku私鑰和公鑰(從.ssh.bak目錄)復制到新創建的.ssh目錄並將其命名為id_rsa(和id_rsa.pub)。

現在推動按預期工作:

git push heroku master

如果您使用的是Windows,請務必使用git-bash而不是Powershell / Command Prompt。

如果您只想重置ssh密鑰:

  1. 刪除用戶的.ssh目錄
  2. 打開git-bash
  3. ssh-keygen -t rsa
  4. heroku鍵:添加

然后你就可以git push了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM