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

Я запустил git push -u origin master

Он говорит мне, что "Permission denied (public key) фатальный: удаленный конец неожиданно повесил трубку"

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

Ответы

Ответ 1

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, чей releases включить 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.

Ответ 2

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

Откройте git - bash и выполните ту же команду с добавлением -C, поскольку вы комментируете в своем адресе электронной почты: ssh-keygen -t rsa -C "[email protected]". Что это.

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

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

Ответ 3

В окне Windows я следил ниже (с помощью Git для Windows)

  • Запуск "Git Gui" (Пуск → Git → Git Gui)
  • Нажмите "Справка", а затем "Показать ключ SSH"
  • Нажмите "Создать ключ", если у вас еще нет одного

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

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

Ответ 4

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

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

Ответ 5

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

Ссылка на скачивание git bash здесь

Ответ 6

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

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

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

Ответ 7

Я думаю, вы можете добавить расположение файла ssh-keygen.exe в переменную среды PATH. Выполните следующие действия. Перейдите в "Мой компьютер" → "Правка" → "Свойства" → "Расширенные настройки системы" → "Переменные среды". Теперь нажмите PATH, а затем нажмите EDIT. В поле значения переменной перейдите в конец и добавьте '; C:\path\to\msysgit1.7.11\bin\ssh-keygen.exe' (без кавычек)

Ответ 8

Если вы установили Git и установлены в C:\Program Files, следуйте ниже:

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

Ответ 9

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

Ответ 10

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

C:\> sh

тогда вы получили это

sh-4.4$ 
# type here 
ssh-4.4$ ssh-keygen -t rsa -b 4096 -C "[email protected]"

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

Ответ 11

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

Ответ 12

для тех, кто не выбирает опцию BASH ЗДЕСЬ. type sh в cmd, тогда они должны иметь доступ к ssh-keygen.exe