[英]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'也失敗了。 采取以下步驟后,它工作正常。
如果不存在,請在User文件夾下創建.ssh文件夾。 如果是,請刪除其中的所有文件(假設您可以使用ssh鍵從頭開始)。
在Windows資源管理器中,右鍵單擊.ssh文件夾,然后從上下文菜單中選擇Git bash。 它與Github Windows客戶端軟件一起安裝。
在bash窗口中輸入ssh-keygen -t rsa -C "yourname@email.com
”當提示時輸入密碼(不要丟失)。
關閉bash shell窗口。
從項目根目錄中的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密鑰:
然后你就可以git push了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.