'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)
- Запустите "Git Gui" (Пуск -> Git -> Git Gui)
- Нажмите "Справка", а затем "Показать ключ SSH".
- Нажмите "Создать ключ", если у вас его еще нет
Примечание:- это создает файлы ключей в папке вашего личного профиля C:\Users\YourUserID\.ssh\
Не нужно ничего добавлять к переменным среды! Просто откройте git bash и выполните команду ssh-keygen.
Ссылка для скачивания git bash здесь
Я нашел простое решение, чтобы исправить это:
В командной строке перейдите в каталог git\bin и выполните команды здесь
Если вы установили 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
Просто зайдите на 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 не имеет этой встроенной команды.
Для тех, кто не выбирает вариант BASH ЗДЕСЬ. наберите sh в cmd, тогда они должны иметь доступ к ssh-keygen.exe
Я исправил это, просто добавив ssh-keygen
к моим переменным среды.