【问题标题】:'ssh-keygen' is not recognized as an internal or external command'ssh-keygen' 未被识别为内部或外部命令
【发布时间】:2012-07-31 01:33:56
【问题描述】:

我跑git push -u origin master

它告诉我“权限被拒绝(公钥)致命:远程端意外挂断”

然后我在网上查了一下,发现我必须在 GitHub 上为我的帐户生成一个 ssh 密钥。但是,这样做后,当我尝试执行 ssh-keygen -t rsa "email@youremail.com" 时,它只是说 ssh-keygen 无法识别。我尝试做 mkdir C:\ssh 但这没有用。如果有帮助,我正在使用 Ruby Rails 并且我在 Windows 计算机上。谁能帮帮我?

【问题讨论】:

    标签: windows git ssh github


    【解决方案1】:

    2012:
    ssh-keygen.exemsysgit 的一部分:

     C:\path\to\msysgit1.7.11\bin\ssh-keygen.exe
    

    如果您的%PATH% 包含C:\path\to\msysgit1.7.11\bin\,您将拥有ssh-keygen


    2015 年更新:
    ssh-keygen.exeGit For Windows 的一部分,其 releases 包括 PortableGit-2.4.3.1-2nd-release-candidate-64-bit.7z

    c:\path\to\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\usr\bin\ssh-keygen.exe
    

    这意味着%PATH% 必须包含c:\path\to\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\usr\bin(没有ssh-keygen.exe

    作为I explained before,Git for Windows 将很快淘汰 msysgit。
    我在“Why is it that if you download Git 2.0 from the net, you always get a 1.9.4 installer package?”中详细介绍了这个新版本是如何基于更新的msys2 project

    【讨论】:

    • 在 Windows 的 PATH 中使用 ssh-keygen.exe 是否安全?之后我需要删除它的位置吗?
    • @Green 实际上,它是 Windows PATH 的一部分,仅在您与 git 会话期间,因为您正在与 git-cmd.bat:github.com/msysgit/msysgit/blob/master/git-cmd.bat 启动一个特殊的 DOS 会话。它将完成PATH 并设置HOME
    • 实际上,路径应该没有ssh-keygen.exe。我的意思是,它只对我起作用。
    • @alexander 我同意,我已经编辑了答案以使其更加明显。
    • 对我来说,路径是C:\Program Files (x86)\Git\usr\bin
    【解决方案2】:

    我刚刚遇到了这个问题,并认为我会分享我认为更简单的解决方法。

    打开 git-bash 并添加 -C 运行相同的命令,因为您在您的电子邮件地址中发表评论:ssh-keygen -t rsa -C "email@youremail.com" 命令。就是这样。

    安装 git 时应该已经安装了 git-bash。如果找不到,可以检查 C:\Program Files\Git\Git Bash

    我第一次这样做时,它未能为我创建 .ssh 文件夹,所以我不得不打开一个标准的命令提示符和 mkdir C:\Users\yourusername\.ssh

    【讨论】:

    • +1 表示不建议安装其他软件包
    • +1 这是一个更好的解决方案,因为不需要其他安装
    • 我的密钥没有保存在.ssh 文件夹中。它保存在与Git Bash 存在的同一目录中。
    • 在我的情况下,在 powershell 中既没有找到 ssh-keygen 也没有找到 ssh。之前的会话,但它起作用了。
    【解决方案3】:

    我在 windows 中跟随下面(安装了 Git for Windows)

    1. 运行“Git Gui”(开始 --> Git --> Git Gui)
    2. 单击帮助,然后单击显示 SSH 密钥
    3. 如果您还没有密钥,请单击“生成密钥”

    注意:- 这会在您的个人资料文件夹 C:\Users\YourUserID\.ssh\ 下创建密钥文件

    【讨论】:

    • 很好的答案 - 创建新 SSH 密钥的好方法 - TY :)
    【解决方案4】:

    无需向环境变量添加任何内容!只需打开 git bash 并在其中执行 ssh-keygen 命令即可。

    git bash 下载链接here

    【讨论】:

      【解决方案5】:

      我找到了一个简单的解决方案来解决这个问题:

      在命令提示符下,转到您的 git\bin 目录, 然后从这里执行你的命令

      【讨论】:

      • 在我的系统 Windows 10 中,ssh-keygen.exe 在 'git\usr\bin' 中找到。
      【解决方案6】:

      如果你已经安装了 Git,并且安装在 C:\Program Files,如下所示

      1. 转到“C:\Program Files\Git”
      2. 运行 git-bash.exe,这会打开一个新窗口
      3. 在新的 bash 窗口中,运行“ssh-keygen -t rsa -C””
      4. 它会提示保存密钥的文件,不要输入任何值 - 只需按 Enter 键
      5. 密码短语相同(两次),只需按 Enter 键
      6. id_rsa 和 id_rsa.pub 将在您的主文件夹中生成 .ssh

      【讨论】:

        【解决方案7】:

        只需转到 heroku.bat 并添加:

        @SET PATH="D:\Program Files (x86)\Git\bin";%PATH%@SET PATH=%HEROKU_RUBY%;%PATH% 之后

        在我的情况下,它位于 D:\Program Files (x86)\Git\bin 中,将其更改为您安装 Git 的路径。 (我只是把它留在了我的路径上,所以如何写这个会更清楚)

        【讨论】:

          【解决方案8】:

          我认为您可以在PATH环境变量中添加文件ssh-keygen.exe的位置。请按照以下步骤操作:转到我的电脑->右键单击->属性->高级系统设置->单击环境变量。现在单击 PATH,然后单击 EDIT。在变量值字段中,转到末尾并附加 ';C:\path\to\msysgit1.7.11\bin\ssh-keygen.exe'(不带引号)

          【讨论】:

            【解决方案9】:

            不要做任何事情,只需输入命令提示符

            C:\> sh
            

            然后你就变成这样了

            sh-4.4$ 
            # type here 
            ssh-4.4$ ssh-keygen -t rsa -b 4096 -C "example@example.com"
            

            这应该可以工作。

            【讨论】:

              【解决方案10】:

              对于 windows,您可以添加以下内容:

              SET PATH="C:\Program Files\Git\usr\bin";%PATH%
              

              【讨论】:

                【解决方案11】:

                您可能应该检查this。 Windows 没有内置该命令。

                【讨论】:

                  【解决方案12】:

                  我只需将ssh-keygen 添加到我的环境变量即可解决此问题。

                  【讨论】:

                  • 你到底做了什么?
                  【解决方案13】:

                  对于那些不选择 BASH HERE 选项的人。在 cmd 中输入 sh 然后他们应该可以访问 ssh-keygen.exe

                  【讨论】:

                    【解决方案14】:

                    在我的机器上,ssh-keygen 可从 powershell 获得。

                    【讨论】:

                      猜你喜欢
                      • 2012-04-26
                      • 1970-01-01
                      • 2015-05-27
                      • 2014-04-29
                      • 1970-01-01
                      • 1970-01-01
                      • 2013-10-06
                      • 2013-10-11
                      • 2013-01-25
                      相关资源
                      最近更新 更多