'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. Може хтось мені допоможе?

Відповіді:


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 For Windows , випуски якої включають PortableGit-2.4.3.1-2nd-release-kandidat-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 .


Чи безпечно бути 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

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


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: \ Програмні файли \ Git"
  2. Запустіть git-bash.exe, це відкриє нове вікно
  3. У новому вікні bash запустіть "ssh-keygen -t rsa -C" "
  4. Тут буде запропоновано файл, в якому зберегти ключ, не вводити ніякого значення - просто натисніть клавішу Enter
  5. Те саме для парольної фрази (двічі), просто натисніть клавішу Enter
  6. id_rsa та id_rsa.pub будуть створені у вашій домашній папці під .ssh

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. Виконайте наступні дії: Перейдіть у розділ Мій комп'ютер-> Клацніть правою кнопкою миші-> Властивості-> Додаткові параметри системи-> Клацніть Змінні середовища. Тепер натисніть кнопку 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"

це має працювати.





0

для тих, хто не обирає варіант BASH ТУТ введіть sh у cmd, тоді вони повинні мати доступ ssh-keygen.exe


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.