“ ssh-keygen”不能被识别为内部或外部命令

我负责 git push -u origin master

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

然后我在互联网上查找,发现我必须为我在 GitHub 上的帐户生成一个 ssh 密钥。然而,当我尝试执行 ssh-keygen-t rsa“ email@youremail.com”时,它只是说 ssh-keygen 不能识别。我试过用 mkdir C: ssh,但是没有用。如果有帮助的话,我正在使用 Ruby Rails,而且我在 Windows 计算机上。有人能帮帮我吗?

242469 次浏览

You probably should check this. Windows doesn't have that command built in.

2012:
ssh-keygen.exe is part of msysgit:

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

if your %PATH% includes C:\path\to\msysgit1.7.11\bin\, you will have ssh-keygen.


Update 2015:
ssh-keygen.exe is part of Git For Windows, whose releases include 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

That means the %PATH% must include c:\path\to\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\usr\bin (without the ssh-keygen.exe)

As I explained before, Git for Windows will soon phase out msysgit.
I detailed in "Why is it that if you download Git 2.0 from the net, you always get a 1.9.4 installer package?" how this new version is based on the more recent msys2 project.

I think you can add the location of the file ssh-keygen.exe in the PATH environment variable. Follow the steps: Go to My Computer->Right click->Properties->Advanced System Settings->Click Environmental Variables. Now click PATH and then click EDIT. In the variable value field, go to the end and append ';C:\path\to\msysgit1.7.11\bin\ssh-keygen.exe' (without quotes)

I just had this issue and thought I'd share what I thought was an easier way around this.

Open git-bash and run the same command with the addition of -C since you're commenting in your email address: ssh-keygen -t rsa -C "email@youremail.com" command. That's it.

git-bash should have been installed when you installed git. If you can't find it you can check C:\Program Files\Git\Git Bash

The first time I did this it failed to create the .ssh folder for me so I had to open a standard Command Prompt and mkdir C:\Users\yourusername\.ssh

I got it fixed by just adding ssh-keygen to my environment variables.

Just go to heroku.bat and add:

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

in my case it's in D:\Program Files (x86)\Git\bin, change it to the path you've installed Git to. (i just left it with my path so it will be clearer on how to write this)

I found an easy solution to fix this :

In the command prompt, go to your git\bin directory, and then execute your commands from here

No need to add anything to environmental variables! Just open up git bash and perform command the ssh-keygen in there.

Link to download git bash here

for those who does not choose BASH HERE option. type sh in cmd then they should have ssh-keygen.exe accessible

I followed below in windows (With Git for Windows installed)

  1. Run "Git Gui" (Start --> Git --> Git Gui)
  2. Click Help and then Show SSH Key
  3. Click Generate Key if you do not have one already

Note:- this creates the key files under your personal profile folder C:\Users\YourUserID\.ssh\

enter image description here

If you have installed Git, and is installed at C:\Program Files, follow as below

  1. Go to "C:\Program Files\Git"
  2. Run git-bash.exe, this opens a new window
  3. In the new bash window, run "ssh-keygen -t rsa -C""
  4. It prompts for file in which to save key, dont input any value - just press enter
  5. Same for passphrase (twice), just press enter
  6. id_rsa and id_rsa.pub will be generated in your home folder under .ssh

don't do anything just type in your command prompt

C:\> sh

then you got like this

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

this should must work.

For windows you can add this:

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

In my machine, ssh-keygen was available from powershell.