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

Я бегу git push -u origin master

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

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

13 ответов

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 For 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.

У меня просто возникла эта проблема, и я поделился тем, что мне показалось проще.

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

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

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

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

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

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

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

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

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

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

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

Если вы установили 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

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

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

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

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

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

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

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

C:\> sh

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

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

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

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

В моей машине ssh-keygen был доступен от powershell.

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

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

Другие вопросы по тегам