【问题标题】:Could not generate ssh public key for heroku in Windows 7无法在 Windows 7 中为 heroku 生成 ssh 公钥
【发布时间】:2013-02-07 17:47:02
【问题描述】:

当我在我的机器上通过 cmd 尝试 heroku login 时,它说

找不到现有的公钥
你想生成一个吗? [YN]

然后当我按'y'并输入它时说

生成新的 ssh 公钥
无法生成密钥:“ssh-keygen”不是内部或外部命令可运行程序或批处理文件

请帮帮我。

【问题讨论】:

  • 查看之前的回答:stackoverflow.com/a/11771907/538746
  • @user2098336 选择能够解决您的麻烦的解决方案以帮助将来面临同样问题的其他程序员非常重要!

标签: heroku ssh public-key heroku-toolbelt


【解决方案1】:

Heroku 工具带包含 git 分发包,其中包含所需的 ssh-keygen.exe 。我刚刚在 C:\Program Files\git\bin 找到它。找到您的 git 文件夹并将其添加到您的系统路径中,如下所述:superuser.com/questions/284342/

【讨论】:

  • 根据对另一个答案的评论,并且由于这是最受好评的(因为它是正确的),我会注意:如果您使用 git bash CLI使用heroku auth:login 登录heroku,您将能够生成SSH 密钥。如果你在 Windows 上使用普通的cmd shell 和相同的命令,你需要在你的 PATH 中包含你的 Git 目录;这种行为的原因是,根据another comment,Git bash 在运行时会设置 PATH。
  • @ChrisCirefice 谢谢!
  • 在我的 Win 10 中,它位于 C:\Program Files\Git\usr\bin !
【解决方案2】:

我遇到了同样的问题,刚刚解决了。我安装了另一个名为 Git Bash 的 CMD,您可以免费下载 (http://git-scm.com/downloads),然后重复其中的命令,它就成功了!

【讨论】:

  • 我很确定 heroku 工具带现在包括 git bash,如果不是在发布时。但是,是的,我犯了同样的错误,习惯性地直接使用 CMD——同样的错误。因为我已经有了 git bash,所以尝试了一下,效果很好!谢谢。
【解决方案3】:

对于 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 密钥。

【讨论】:

    【解决方案4】:

    Windows 10-64 位

    我已经安装了 git,然后是 heroku toolbelt(我认为它重新安装了 git)

    我的环境变量中有C\Program Files (x86)\Heroku\bin(可能是在我安装heroku 工具带时生成的),如果我查看那个文件路径,我有一个ssh-keygen.bat - 所以看起来我应该能够运行@987654322 @ 从命令行。

    这太容易了,我得到了:

    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 在命令行中进入git bash模式然后运行ssh-keygen -t rsa

    git bash:

    mamwo@DESKTOP-9GVG6K8 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 mamwo@DESKTOP-9GVG6K8
    The key's randomart image is:
    

    现在,当我查看 C/User/mamwo/.ssh(对我来说最好的方法是通过 pycharms 文件夹 - Windows 很烂)时,我看到了我的 id_rsa 和 id_rsa.pub

    但是这个“无法生成公钥”问题都是由我开始的,因为当我将我的仓库(从 gi​​thub)克隆到新计算机并发现我可以推送时,我遇到了一个“我没有要添加的公钥”的问题到 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]
    

    【讨论】:

      猜你喜欢
      • 2013-02-23
      • 2020-10-01
      • 2013-05-13
      • 2013-01-05
      • 2016-09-15
      • 1970-01-01
      • 2015-03-26
      • 2015-04-06
      • 2019-05-10
      相关资源
      最近更新 更多