Respuesta1
Creo que probablemente no estés ejecutando Cygwin ssh-keygen
, ¿qué muestra which ssh-keygen
? El software que no es Cygwin ssh-keygen
en mi sistema (que se instaló con PuTTY o WinSCP, no recuerdo cuál) tiene el mismo comportamiento, pero se puede hacer que funcione con:
ssh-keygen -t rsa -f /cygwin64/home/me/.ssh/id_rsa -N "passphrase"
Nota:
- Inserte su propia frase de contraseña en lugar de
passphrase
o-N ""
para una frase de contraseña vacía - La ruta tiene un formato extraño y tiene su raíz en
C:
. Tengo cygwin instalado enC:\cygwin64
, por lo que las claves se encuentran en mi directorio de inicio de Cygwin (~/.ssh
) en este ejemplo. Haz.ssh
primero.
O simplemente podrías instalar Cygwin ssh-keygen
. which ssh-keygen
entonces debería regresar /usr/bin/ssh-keygen
.
Respuesta2
Utilice barras diagonales para las rutas de cygwin. La barra diagonal inversa es "el carácter de escape" en Linux (y por lo tanto también en cygwin).
$ cygpath --ayuda
cygpath
ayuda a convertir rutas + nombres de archivos para/desde/hacia cygwin.
Sugerencia: use rutas de Linux en cygwin, use rutas de Windows en Windows.
Ejemplo no probado:
$ cygpath -u "C:\Users\User/.shhs/id_rsa" /cygdrive/c/UsersUser/.shhs/id_rsa
Lo que ha escrito en su ejemplo (
C:\Users\User/.shhs/id_rsa
) es al final igual a C:UsersUser/.shhs/id_rsa
, que probablemente no sea lo que desea.
El "carácter de escape" elimina el significado especial del carácter que le sigue, normalmente un carácter especial, y deja el carácter literalmente, tal como está, en la entrada (hay más que eso, pero aquí es suficiente).
Ejemplo:
$ eco \$RUTA=$RUTA $RUTA=... $
Respuesta3
Considere usarConstrucción de Microsoft de OpenSSH. Justodescargar OpenSSH-Win32.zip
o OpenSSH-Win64.zip
extraiga el archivo ssh-keygen.exe
y utilícelo: no necesita instalación ni dependencias (en Cygwin o cualquier otra cosa).
Si tiene Windows 10 versión 1803 o posterior, ya tiene OpenSSH integrado. Para versiones anteriores, también puede instalarlo fácilmente comoCaracterística opcional "Cliente OpenSSH".
Ver tambiénInstale el cliente OpenSSH SFTP en Windows 7.
Respuesta4
Hilo de hierba rodadora, lo sé, pero encontré la solución. El problema es que está intentando utilizar el binario openssh nativo de Windows y las rutas de los directorios chocan.
Ieliminó el cliente de Windows openssh, reinstalé cygwin con los binarios de openssh compilados con cygwin y ahora ssh-keygen
funciona exactamente como debería.
También vale la pena señalar que otras cosas estaban fallando (como rsync) por lo que probablemente sea la misma razón.