'ssh-keygen' tidak dikenali sebagai perintah internal atau eksternal

103

saya berlari git push -u origin master

Ia memberitahu saya bahwa "Izin ditolak (kunci publik) fatal: Remote end tiba-tiba terputus"

Kemudian saya mencari di internet dan menemukan bahwa saya harus membuat kunci ssh untuk akun saya di GitHub. Namun, setelah melakukannya, ketika saya mencoba melakukan ssh-keygen -t rsa "[email protected]" hanya dikatakan ssh-keygen tidak dikenali. Saya mencoba melakukan mkdir C: \ ssh tetapi tidak berhasil. Jika membantu, saya menggunakan Ruby Rails dan saya menggunakan komputer Windows. Adakah yang bisa membantu saya?

pengguna1567909
sumber

Jawaban:

133

2012:
ssh-keygen.exeadalah bagian dari msysgit :

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

jika Anda %PATH%termasuk C:\path\to\msysgit1.7.11\bin\, Anda akan memilikinya ssh-keygen.


Pembaruan 2015:
ssh-keygen.exeadalah bagian dari Git Untuk Windows , yang rilisnya termasuk 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

Itu berarti %PATH%harus menyertakan c:\path\to\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\usr\bin(tanpa ssh-keygen.exe)

Seperti yang saya jelaskan sebelumnya , Git untuk Windows akan segera menghapus msysgit.
Saya menjelaskan secara rinci dalam " Mengapa jika Anda mendownload Git 2.0 dari internet, Anda selalu mendapatkan paket installer 1.9.4? " Bagaimana versi baru ini didasarkan pada proyek msys2 yang lebih baru .

VonC
sumber
Apakah aman untuk memiliki ssh-keygen.exePATH di Windows? Apakah saya perlu menghapus lokasinya setelah itu?
Hijau
@Green sebenarnya, ini adalah bagian dari Windows PATHhanya selama sesi Anda dengan git, karena Anda meluncurkan sesi DOS khusus dengan git-cmd.bat: github.com/msysgit/msysgit/blob/master/git-cmd.bat . Ini akan menyelesaikan PATHdan mengatur HOME.
VonC
Sebenarnya, jalan itu harus tanpa ssh-keygen.exe. Maksud saya, cara ini hanya berlaku untuk saya.
Alexander
1
@alexander Saya setuju, dan saya telah mengedit jawabannya agar lebih terlihat.
VonC
7
bagi saya, jalurnyaC:\Program Files (x86)\Git\usr\bin
rupinderjeet
65

Saya baru saja mengalami masalah ini dan berpikir saya akan membagikan apa yang saya pikir sebagai cara yang lebih mudah untuk mengatasi masalah ini.

Buka git-bash dan jalankan perintah yang sama dengan tambahan -C karena Anda berkomentar di alamat email Anda: ssh-keygen -t rsa -C "[email protected]"perintah. Itu dia.

git-bash seharusnya sudah diinstal saat Anda menginstal git. Jika Anda tidak dapat menemukannya, Anda dapat memeriksa C: \ Program Files \ Git \ Git Bash

Pertama kali saya melakukan ini, gagal membuat folder .ssh untuk saya jadi saya harus membuka Command Prompt standar dan mkdir C: \ Users \ yourusername \ .ssh

cjaypierson.dll
sumber
15
+1 untuk tidak menyarankan penginstalan paket perangkat lunak lain
Chip McCormick
2
+1 ini adalah solusi yang lebih baik karena tidak perlu instalasi lain
guoleii
Kunci saya tidak disimpan di .sshfolder. Itu disimpan di direktori yang sama seperti yang Git Bashada.
Ahmad Behzadi
51

Saya mengikuti di bawah ini di windows (Dengan Git untuk Windows diinstal)

  1. Jalankan "Git Gui" (Start -> Git -> Git Gui)
  2. Klik Help dan kemudian Show SSH Key
  3. Klik Generate Key jika Anda belum memilikinya

Catatan: - ini membuat file kunci di bawah folder profil pribadi Anda C: \ Users \ YourUserID \ .ssh \

masukkan deskripsi gambar di sini

Dinesh Rajan
sumber
Jawaban bagus - cara mudah yang bagus untuk membuat kunci-SSH baru - TY :)
gav_aus_web
9

Saya menemukan solusi mudah untuk memperbaikinya:

Di prompt perintah, buka direktori git \ bin Anda, lalu jalankan perintah Anda dari sini

pirgauthier
sumber
6
Di sistem saya, Windows 10, ssh-keygen.exe ditemukan di 'git \ usr \ bin'.
Tarabass
9

Tidak perlu menambahkan apapun ke variabel lingkungan! Buka saja git bash dan lakukan perintah ssh-keygen di sana.

Tautan untuk mengunduh git bash di sini

Bilton Tran
sumber
8

Jika Anda telah menginstal Git, dan diinstal di C: \ Program Files, ikuti seperti di bawah ini

  1. Buka "C: \ Program Files \ Git"
  2. Jalankan git-bash.exe, ini akan membuka jendela baru
  3. Di jendela bash baru, jalankan "ssh-keygen -t rsa -C" "
  4. Ini meminta file tempat menyimpan kunci, jangan masukkan nilai apa pun - cukup tekan enter
  5. Sama untuk frasa sandi (dua kali), cukup tekan enter
  6. id_rsa dan id_rsa.pub akan dibuat di folder rumah Anda di bawah .ssh
pengguna3233126
sumber
4

Buka saja heroku.bat dan tambahkan:

@SET PATH="D:\Program Files (x86)\Git\bin";%PATH% setelah @SET PATH=%HEROKU_RUBY%;%PATH%

dalam kasus saya ada di D: \ Program Files (x86) \ Git \ bin, ubah ke jalur tempat Anda menginstal Git. (Saya baru saja meninggalkannya dengan jalan saya sehingga akan lebih jelas tentang cara menulis ini)

Vlad
sumber
3

Saya pikir Anda dapat menambahkan lokasi file ssh-keygen.exe di variabel lingkungan PATH. Ikuti langkah-langkahnya: Buka Komputer Saya-> Klik kanan-> Properti-> Pengaturan Sistem Lanjutan-> Klik Variabel Lingkungan. Sekarang klik PATH dan kemudian klik EDIT. Di bidang nilai variabel, pergi ke akhir dan tambahkan '; C: \ path \ to \ msysgit1.7.11 \ bin \ ssh-keygen.exe' (tanpa tanda kutip)

Nehal J Wani
sumber
3

jangan lakukan apa pun, cukup ketik command prompt Anda

C:\> sh

lalu kamu menjadi seperti ini

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

ini harus bekerja.

Osama Saeed
sumber
2

Untuk windows Anda dapat menambahkan ini:

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

Anda mungkin harus memeriksa ini . Windows tidak memiliki perintah itu di dalamnya.

Benjamin Tan Wei Hao
sumber
0

Saya memperbaikinya dengan hanya menambahkan ssh-keygenke variabel lingkungan saya.

Bartel De Brabandere
sumber
Apa sebenarnya yang Anda lakukan?
Antony Hatchkins
0

bagi yang tidak memilih opsi BASH DI SINI. ketik sh di cmd maka mereka harus memiliki ssh-keygen.exe yang dapat diakses

Zeeshan Khan
sumber
0

Di mesin saya, ssh-keygentersedia dari PowerShell.

mikeLundquist
sumber