'ssh-keygen' не распознается как внутренняя или внешняя команда

103

я бегу git push -u origin master

Он сообщает мне, что «Отказано в доступе (открытый ключ) фатально: удаленный конец неожиданно повесил трубку»

Затем я поискал в Интернете и обнаружил, что мне нужно сгенерировать ssh-ключ для моей учетной записи на GitHub. Однако после этого, когда я попытался выполнить ssh-keygen -t rsa "email@youremail.com", он просто сказал, что ssh-keygen не распознается. Я пробовал использовать mkdir C: \ ssh, но это не сработало. Если это поможет, я использую Ruby Rails и работаю на компьютере с Windows. Кто-нибудь может мне помочь?

user1567909
источник

Ответы:

133

2012:
ssh-keygen.exeявляется частью msysgit :

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

если ваш %PATH%включает C:\path\to\msysgit1.7.11\bin\, у вас будет ssh-keygen.


Обновление 2015:
ssh-keygen.exeявляется частью Git для Windows , выпуски которого включают PortableGit-2.4.3.1-2nd-release-кандидата-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)

Как я объяснял ранее , Git для Windows скоро откажется от msysgit.
В статье « Почему при загрузке Git 2.0 из сети вы всегда получаете установочный пакет 1.9.4? », Как эта новая версия основана на более позднем проекте msys2 .

VonC
источник
Безопасно ли ssh-keygen.exeиспользовать PATH в Windows? Нужно ли после этого удалять его местоположение?
Грин
На самом деле @Green является частью Windows PATHтолько во время вашего сеанса с git, поскольку вы запускаете специальный сеанс DOS с помощью git-cmd.bat: github.com/msysgit/msysgit/blob/master/git-cmd.bat . Будет комплектовать PATHи ставить HOME.
VonC
На самом деле путь должен быть без него ssh-keygen.exe. То есть у меня это работает только так.
Александр
1
@alexander Я согласен и отредактировал ответ, чтобы сделать его более заметным.
VonC
7
для меня путь былC:\Program Files (x86)\Git\usr\bin
rupinderjeet 08
65

У меня была эта проблема, и я подумал, что поделюсь тем, что, по моему мнению, было более простым способом решения этой проблемы.

Откройте git-bash и выполните ту же команду с добавлением -C, так как вы комментируете свой адрес электронной почты: ssh-keygen -t rsa -C "email@youremail.com"command. Вот и все.

git-bash должен был быть установлен при установке git. Если вы не можете найти его, проверьте C: \ Program Files \ Git \ Git Bash

В первый раз, когда я сделал это, мне не удалось создать папку .ssh, поэтому мне пришлось открыть стандартную командную строку и mkdir C: \ Users \ yourusername \ .ssh

Cjaypierson
источник
15
+1 за то, что не предлагал установить другой программный пакет
Chip McCormick
2
+1 это лучшее решение, потому что не нужна другая установка
guoleii
Мой ключ не сохранился в .sshпапке. Он был сохранен в том же каталоге, что и Git Bashсуществует.
Ахмад Бехзади
51

Я следовал ниже в окнах (с установленным Git для Windows)

  1. Запустите "Git Gui" (Пуск -> Git -> Git Gui)
  2. Нажмите «Справка», а затем «Показать ключ SSH».
  3. Нажмите "Создать ключ", если у вас его еще нет.

Примечание. - ключевые файлы будут созданы в папке вашего личного профиля C: \ Users \ YourUserID \ .ssh \

введите описание изображения здесь

Динеш Раджан
источник
Отличный ответ - хороший простой способ создать новый SSH-ключ - TY :)
gav_aus_web
9

Я нашел простое решение, чтобы исправить это:

В командной строке перейдите в каталог git \ bin, а затем выполните свои команды отсюда.

пиргаутьер
источник
6
В моей системе Windows 10 ssh-keygen.exe был найден в 'git \ usr \ bin'.
Тарабасс
9

Не нужно ничего добавлять к переменным окружения! Просто откройте git bash и выполните там команду ssh-keygen.

Ссылка для загрузки git bash здесь

Билтон Тран
источник
8

Если вы установили Git и он установлен в C: \ Program Files, выполните следующие действия.

  1. Перейдите в "C: \ Program Files \ Git"
  2. Запустите git-bash.exe, откроется новое окно
  3. В новом окне bash запустите "ssh-keygen -t rsa -C" "
  4. Он запрашивает файл, в котором следует сохранить ключ, не вводите никакого значения - просто нажмите ввод
  5. То же самое для ключевой фразы (дважды), просто нажмите ввод
  6. id_rsa и id_rsa.pub будут созданы в вашей домашней папке под .ssh
user3233126
источник
4

Просто зайдите на heroku.bat и добавьте:

@SET PATH="D:\Program Files (x86)\Git\bin";%PATH% после @SET PATH=%HEROKU_RUBY%;%PATH%

в моем случае он находится в D: \ Program Files (x86) \ Git \ bin, измените его на путь, по которому вы установили Git. (я просто оставил это своим путем, чтобы было понятнее, как это написать)

Влад
источник
3

Думаю, вы можете добавить расположение файла ssh-keygen.exe в переменную окружения PATH. Выполните следующие действия: Перейдите в «Мой компьютер» -> щелкните правой кнопкой мыши -> «Свойства» -> «Дополнительные параметры системы» -> нажмите «Переменные среды». Теперь щелкните ПУТЬ, а затем - ИЗМЕНИТЬ. В поле значения переменной перейдите в конец и добавьте '; C: \ path \ to \ msysgit1.7.11 \ bin \ ssh-keygen.exe' (без кавычек)

Нехал Дж. Вани
источник
3

ничего не делайте, просто введите в командной строке

C:\> sh

тогда у тебя получилось вот так

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

это должно работать.

Усама Саид
источник
2

Для окон вы можете добавить это:

SET PATH="C:\Program Files\Git\usr\bin";%PATH%
Омина
источник
1

Вам, наверное, стоит это проверить . Windows не имеет встроенной команды.

Бенджамин Тан Вэй Хао
источник
0

Я исправил это, просто добавив ssh-keygenв свои переменные среды.

Бартель де Брабандере
источник
Что именно ты сделал?
Энтони Хэтчкинс,
0

для тех, кто не выбирает вариант BASH HERE. введите sh в cmd, тогда у них должен быть доступ к ssh-keygen.exe

Зишан Хан
источник
0

На моей машине он ssh-keygenбыл доступен через PowerShell.

МайкЛундквист
источник