'ssh-keygen' no se reconoce como un comando interno o externo

103

Corro git push -u origin master

Me dice que "Permiso denegado (clave pública) fatal: el extremo remoto colgó inesperadamente"

Luego busqué en Internet y descubrí que tenía que generar una clave ssh para mi cuenta en GitHub. Sin embargo, al hacerlo, cuando intenté hacer ssh-keygen -t rsa "[email protected]", simplemente decía que ssh-keygen no era reconocido. Intenté hacer mkdir C: \ ssh pero no funcionó. Si ayuda, estoy usando Ruby Rails y estoy en una computadora con Windows. ¿Alguien podría ayudarme?

usuario1567909
fuente

Respuestas:

133

2012:
ssh-keygen.exees parte de msysgit :

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

si su %PATH%incluye C:\path\to\msysgit1.7.11\bin\, lo tendrá ssh-keygen.


Actualización 2015:
ssh-keygen.exees parte de Git para Windows , cuyas versiones incluyen PortableGit-2.4.3.1-2nd-release-candidato-64-bit.7z

c:\path\to\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\usr\bin\ssh-keygen.exe

Eso significa que %PATH%debe incluir c:\path\to\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\usr\bin(sin el ssh-keygen.exe)

Como expliqué antes , Git para Windows pronto eliminará msysgit.
En " ¿Por qué si descargas Git 2.0 de la red, siempre obtienes un paquete de instalación 1.9.4? ", Detallé cómo esta nueva versión se basa en el proyecto msys2 más reciente .

VonC
fuente
¿Es seguro tener ssh-keygen.exePATH en Windows? ¿Necesito eliminar su ubicación después de eso?
Verde
@Green en realidad, es parte de Windows PATHsolo durante su sesión con git, ya que está iniciando una sesión especial de DOS con git-cmd.bat: github.com/msysgit/msysgit/blob/master/git-cmd.bat . Completará PATHy fraguará HOME.
VonC
Acutalmente, el camino debería estar fuera ssh-keygen.exe. Quiero decir, funciona solo de esta manera para mí.
alexander
1
@alexander Estoy de acuerdo, y he editado la respuesta para hacerla más visible.
VonC
7
para mí, el camino fueC:\Program Files (x86)\Git\usr\bin
rupinderjeet
65

Acabo de tener este problema y pensé en compartir lo que pensé que era una forma más fácil de solucionarlo.

Abra git-bash y ejecute el mismo comando con la adición de -C ya que está comentando en su dirección de correo electrónico: ssh-keygen -t rsa -C "[email protected]"comando. Eso es.

git-bash debería haberse instalado cuando instaló git. Si no puede encontrarlo, puede consultar C: \ Archivos de programa \ Git \ Git Bash

La primera vez que hice esto, no pude crear la carpeta .ssh por mí, así que tuve que abrir un símbolo del sistema estándar y mkdir C: \ Users \ yourusername \ .ssh

cjaypierson
fuente
15
+1 por no sugerir la instalación de otro paquete de software
Chip McCormick
2
+1 esta es una mejor solución porque no necesita otra instalación
guoleii
Mi clave no se guardó en la .sshcarpeta. Se guardó en el mismo directorio que Git Bashexiste.
Ahmad Behzadi
51

Seguí a continuación en Windows (con Git para Windows instalado)

  1. Ejecute "Git Gui" (Inicio -> Git -> Git Gui)
  2. Haga clic en Ayuda y luego en Mostrar clave SSH
  3. Haga clic en Generar clave si aún no tiene una

Nota: esto crea los archivos clave en la carpeta de su perfil personal C: \ Users \ YourUserID \ .ssh \

ingrese la descripción de la imagen aquí

Dinesh Rajan
fuente
Excelente respuesta: una manera fácil y agradable de crear una nueva clave SSH - TY :)
gav_aus_web
9

Encontré una solución fácil para solucionar esto:

En el símbolo del sistema, vaya a su directorio git \ bin y luego ejecute sus comandos desde aquí

pirgauthier
fuente
6
En mi sistema, Windows 10, ssh-keygen.exe se encontró en 'git \ usr \ bin'.
Tarabass
9

¡No es necesario agregar nada a las variables ambientales! Simplemente abra git bash y ejecute el comando ssh-keygen allí.

Enlace para descargar git bash aquí

Bilton Tran
fuente
8

Si ha instalado Git y está instalado en C: \ Archivos de programa, siga lo siguiente

  1. Vaya a "C: \ Archivos de programa \ Git"
  2. Ejecute git-bash.exe, esto abre una nueva ventana
  3. En la nueva ventana de bash, ejecute "ssh-keygen -t rsa -C" "
  4. Solicita el archivo en el que guardar la clave, no ingrese ningún valor, simplemente presione enter
  5. Lo mismo para la frase de contraseña (dos veces), solo presione enter
  6. id_rsa y id_rsa.pub se generarán en su carpeta de inicio en .ssh
user3233126
fuente
4

Simplemente vaya a heroku.bat y agregue:

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

en mi caso, está en D: \ Archivos de programa (x86) \ Git \ bin, cámbielo a la ruta en la que instaló Git. (Lo dejé con mi camino para que quede más claro cómo escribir esto)

Vlad
fuente
3

Creo que puede agregar la ubicación del archivo ssh-keygen.exe en la variable de entorno PATH. Siga los pasos: Vaya a Mi PC-> Clic derecho-> Propiedades-> Configuración avanzada del sistema-> Haga clic en Variables ambientales. Ahora haga clic en RUTA y luego en EDITAR. En el campo de valor de la variable, vaya al final y agregue '; C: \ ruta \ a \ msysgit1.7.11 \ bin \ ssh-keygen.exe' (sin comillas)

Nehal J Wani
fuente
3

no hagas nada, solo escribe tu símbolo del sistema

C:\> sh

entonces tienes así

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

esto debería funcionar.

Osama Saeed
fuente
2

Para Windows, puede agregar esto:

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

Probablemente deberías comprobar esto . Windows no tiene ese comando integrado.

Benjamin Tan Wei Hao
fuente
0

Lo solucioné simplemente agregando ssh-keygena mis variables de entorno.

Bartel De Brabandere
fuente
¿Que hiciste exactamente?
Antony Hatchkins
0

para aquellos que no eligen la opción BASH AQUÍ. escriba sh en cmd, entonces deberían tener ssh-keygen.exe accesible

Zeeshan Khan
fuente
0

En mi máquina, ssh-keygenestaba disponible en powershell.

mikeLundquist
fuente