2013-02-22 118 views
31

對Heroku的SSH公鑰雖然我在我的機器試圖通過heroku login CMD,它說無法生成在Windows 7

找不到存在的公共密鑰
你想生成一個? [YN]

後,當我按「Y」,進入它說

生成新的SSH公鑰
無法生成密鑰:「SSH-凱基」未被識別爲一個內部或外部命令可操作程序或批處理文件

請幫幫我。

+1

看到這個以前的答案:http://stackoverflow.com/a/11771907/538746 – 2013-02-22 07:04:03

+0

@ user2098336它會選擇很重要該解決方案解決了您的麻煩,以幫助其他程序員將來面臨同樣的問題! – 2013-09-24 11:04:59

回答

34

Heroku toolbelt包含git分發包含所需的ssh-keygen.exe。我剛剛在C:\ Program Files \ git \ bin中找到它。找到您的git文件夾並將其添加到您的系統路徑中,如下所述:superuser.com/questions/284342/

+4

根據對另一個答案的評論,並且由於這是最有利的(因爲它是正確的),所以我會注意到:如果使用** git bash ** CLI使用'heroku auth:login'登錄到heroku ,你將能夠生成一個SSH密鑰。如果你使用相同的命令在窗口上使用普通的'cmd' shell,你需要在你的PATH中包含你的Git目錄;這種行爲的原因是因爲,根據[另一個評論](http://stackoverflow.com/questions/11771378/ssh-keygen-is-not-recognized-as-an-internal-or-external-command/ 11771907#comment23206229_11771907),Git bash在運行時設置PATH。 – 2014-04-22 08:26:32

+0

@ChrisCirefice謝謝! – 2014-08-07 19:14:04

+0

在我的情況下Win 10它位於C:\ Program Files \ Git \ usr \ bin! – CodeToLife 2017-04-27 11:15:48

16

我遇到了同樣的問題,只是解決了它。我安裝了另一個叫做Git Bash的CMD,你可以免費下載(http://git-scm.com/downloads),然後重複這個命令,它就起作用了!

+3

我很確定heroku toolbelt現在包含git bash,如果不是在發佈時。但是,是的,我犯了同樣的錯誤,就像習慣一樣直接向CMD傾訴 - 同樣的錯誤。因爲我已經有了git bash,試過了,它的效果非常好!謝謝。 – Todd 2013-06-07 02:27:48

+7

使用Git bash也爲我解決了它 – Ducain 2013-06-25 14:02:53

1

對於Win7的64位用戶,文件%HerokuPath%s\bin\ssh-keygen.bat樣子:

@SETLOCAL 
@SET HOME=%USERPROFILE% 
@"%HerokuPath%\..\Git\bin\ssh-keygen.exe" %* 

但是Heroku上安裝的Git在Program Files (x86),因此,如果您更新.bat文件:

@SETLOCAL 
@SET HOME=%USERPROFILE% 
@"C:\Program Files (x86)\Git\bin\ssh-keygen.exe" %* 

那麼你應該能夠生成你的ssh密鑰。

0

的Windows 10-64bit

我已經安裝的git,然後Heroku的工具區(我認爲重新安裝GIT)

我在環境變量(當我安裝的Heroku工具區可能產生的)有C\Program Files (x86)\Heroku\bin,如果我在那個文件路徑中查看我有一個ssh-keygen.bat - 所以它好像我應該能夠從命令行運行ssh-keygen -t rsa

這將是太容易了,而不是我得到:

C:\Program Files (x86)\Git\bin>ssh-keygen -t rsa -f id_rsa 
'"C:\Program Files (x86)\Heroku\..\Git\bin\ssh-keygen.exe"' is not recognized as an internal or external command, 
operable program or batch file. 

解決方案

bash在命令行進入混帳bash的模式,然後運行ssh-keygen -t rsa

混帳bash:

[email protected] MINGW32 /bin 
$ ssh-keygen -t rsa 
Generating public/private rsa key pair. 
Enter file in which to save the key (/c/Users/mamwo/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /c/Users/mamwo/.ssh/id_rsa. 
Your public key has been saved in /c/Users/mamwo/.ssh/id_rsa.pub. 
The key fingerprint is: 
SHA256:MMMYYYPPPUUUBBBLLIIICCKKEEEEYYYY [email protected] 
The key's randomart image is: 

現在,當我查看C/User/mamwo/.ssh(對我來說最好的方式是通過pycharms文件夾 - windows sucks),我看到了我的id_rsa和id_rsa。酒吧

但是這'不能生成publickeys'問題都開始爲我,因爲我有一個'我沒有公鑰添加'問題,當我克隆我的回購(從github)到一臺新電腦,發現我可以推到github,但不是heroku。

現在,我有鑰匙 - 我來補充他們

C:\Users\mamwo\Desktop\mv>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. 

C:\Users\mamwo\Desktop\mv>heroku keys 
You have no keys. 

C:\Users\mamwo\Desktop\mv>heroku keys:add 
Found an SSH public key at C:/Users/mamwo/.ssh/id_rsa.pub 
Would you like to upload it to Heroku? [Yn]