Claves SSH de Windows 10

112

Me está costando mucho poner en funcionamiento mis claves SSH después de instalar Windows 10. El método normal es crearlo y colocarlo en la cuenta del usuario en .ssh. Esta carpeta no parece estar disponible en Windows 10.

¿Alguien más se encuentra con esto? Necesito tener 3 claves SSH para diferentes repositorios y esto realmente me está reteniendo.

Rudenate3
fuente
2
¿Windows 10 esconde carpetas de puntos?
Leland Barton
No, eso es lo que pensé al principio también, pero ha agregado algunos desde la instalación.
Rudenate3
2
Mueva su pregunta a Superusuario . Aquí está fuera de tema .
Martin Prikryl
3
@MartinPrikryl Dado que gran parte de la codificación en Linux, el uso de Github, etc. implica claves ssh y .ssh, yo diría que es muy importante para Stackoverflow.
Haziz
2
Estoy de acuerdo con Martin. Una pregunta de programación es una pregunta sobre cómo escribir un programa, no cualquier pregunta que pueda hacer un programador.
Tocino Bits

Respuestas:

130
  1. Abra la línea de comandos de Windows (escriba "cmd" en el cuadro de búsqueda y presione enter).
  2. Se utilizará de forma predeterminada en su carpeta de inicio, por lo que no necesita cduna diferente.
  3. Tipo ssh-keygen
  4. Sigue las instrucciones y listo.
  5. Sus claves ssh deben almacenarse en el directorio elegido, el valor predeterminado es: /c/Users/YourUserName/.ssh/id_rsa.pub

ps: si instaló git con integración bash (como yo), abra "Git Bash" en lugar de "cmd" en el primer paso

Frenesí de diversión digital
fuente
36
esto se ve muy bien excepto que no funciona. no hay comandossh-keygen
roberto tomás
10
por alguna razón, tuve que ejecutar el ssh-keygencomando en el shell git-bash en lugar del cmd-shell.
Olian04
6
Para eso puede usar Git Bash sheel o git cmd, no puede usar Windows cmd.
Pavan T
6
A partir de diciembre de 2018, funcionó de inmediato en Win 10 para mí
Urs
1
@Suncatcher Sí. Para iniciar sesión en Github, DigitalOcean, etc., necesita la clave pública que está en "id_rsa.pub" en la misma carpeta. Ábralo con un editor de texto como el bloc de notas y copie y pegue donde necesite agregar su clave SSH.
Goose
57

2019-04-07 ACTUALIZACIÓN: Probé hoy con una nueva versión de Windows 10 (compilación 1809, "Actualización de octubre de 2018") y no solo el cliente SSH abierto ya no está en versión beta, ya que ya está instalado. Entonces, todo lo que necesita hacer es crear la clave y configurar su cliente para que use SSH abierto en lugar de putty (pagent):

  1. abrir símbolo del sistema (cmd)
  2. entrar ssh-keygeny pulsar enter
  3. presione enter para todas las configuraciones. ahora su clave está guardada en c: \ Users \ .ssh \ id_rsa.pub
  4. Abra su cliente git y configúrelo para usar SSH abierto

Probé en Git Extensions y Source Tree y funcionó con mi repositorio personal en GitHub. Si tiene una versión anterior de Windows o prefiere un cliente gráfico para SSH, lea a continuación.

2018-06-04 UDPATE:

En Windows 10, comenzando con la versión 1709 (win + R y escriba winverpara encontrar el número de compilación), Microsoft está lanzando una versión beta del cliente y servidor OpenSSH. Para poder crear una clave, deberá instalar el servidor OpenSSH. Para hacer esto, siga estos pasos:

  1. abre el menú de inicio
  2. Escriba "función opcional"
  3. seleccione "Agregar una función opcional"
  4. Haga clic en "Agregar una función"
  5. Instalar "Open SSH Client"
  6. Reinicia la computadora

Ahora puede abrir un mensaje y ssh-keygenWindows reconocerá al cliente. No he probado esto. Si no tiene Windows 10 o no desea utilizar la versión beta, siga las instrucciones a continuación sobre cómo utilizar la masilla.


ssh-keygenno viene instalado con Windows. A continuación, se explica cómo crear una clave ssh con Putty:

  1. Instalar masilla
  2. Abrir PuttyGen
  3. Verifique el tipo de clave y la cantidad de bytes a usarParámetros de PuttyGen
  4. Mueva el mouse sobre la barra de progreso generar clave con entrada del mouse
  5. Ahora puede definir una frase de contraseña y guardar las claves públicas y privadas diálogo de clave creada

Para las claves openssh, se requieren algunos pasos más:

  1. copie el texto del cuadro de texto "Clave pública para pegar" y guárdelo como "id_rsa.pub"
  2. Para guardar la clave privada en formato openssh, vaya a Conversiones-> Exportar clave OpenSSH (si no definió una clave de paso, le pedirá que confirme que no desea una clave de paso) menú para convertir la clave a formato OpenSSH
  3. Guárdelo como "id_rsa"

Ahora que las claves están guardadas. Inicie pagenty agregue la clave privada allí (el archivo ppk en formato Putty) diálogo de teclas de pagent

Recuerde que pagentdebe estar ejecutándose para que funcione la autenticación

franksands
fuente
6
ssh-keygen está incluido en Windows 10, no estoy seguro de qué versión, en "Administrar características opcionales"
sebbu
1
@sebbu De hecho, ahora en Windows 10 puede instalar una versión beta del servidor SSH abierto en "Administrar características opcionales" y eso le proporcionará ssh-keygen junto con algunas otras cosas. Pero no viene instalado y no es exactamente fácil de encontrar. Actualizaré mi respuesta.
Franksands
1
@KarlMorrison pagent es la interfaz gráfica de usuario para realizar la autenticación ssh. normalmente se encuentra en el menú de inicio.
Franksands
1
No es necesario instalar Open SSH Server. La función Open SSH Client incluye ssh-keygen.
Onots
1
@Onots Probé con una nueva versión de Windows 10 (actualización de octubre de 2018) y no solo es suficiente abrir el cliente ssh, sino que ya viene instalado: D Actualizaré mi respuesta
franksands
31

WINDOWS: si tienes git para Windows instalado, ve a su carpeta.

ingrese la descripción de la imagen aquí

Busque en el directorio bin. Hay un archivo sh.exe. Ejecuta eso.

ingrese la descripción de la imagen aquí

Luego escriba:

ssh-keygen -t rsa -C "su correo electrónico aquí"

Siga las instrucciones y luego escriba:

cat ~ / .ssh / id_rsa.pub | acortar

Copia la clave a su portapapeles. Ahora puede pegar esa clave pública en el lado del servidor.

Daniel
fuente
13
  1. Abra la línea de comandos de Windows (escriba "cmd" en el cuadro de búsqueda y presione enter).
  2. Se utilizará de forma predeterminada en su carpeta de inicio, por lo que no necesita cduna diferente.
  3. Tipo mkdir .ssh
aruanoc
fuente
9

Advertencia: Si está guardando sus claves en C: /User/username/.ssh (el lugar predeterminado), asegúrese de hacer una copia de seguridad de sus claves en algún lugar (por ejemplo, su administrador de contraseñas).

Después de la actualización más reciente de Windows 10 (versión 1607), mi carpeta .ssh estaba vacía. Aquí es donde siempre han estado mis claves, pero Windows decidió eliminarlas al actualizar.

Afortunadamente, había hecho una copia de seguridad de mis claves ... Pero ... apuesto a que algunas personas estarán revirtiendo sus PC hoy.

Andrés
fuente
Entonces, ¿dónde esperan la mayoría de las aplicaciones que guardes tus claves?
wcochran
3
probablemente en la carpeta que Windows elimina aleatoriamente al actualizar Windows 10?
Andrew
8

Estoy ejecutando Microsoft Windows 10 Pro, Versión 10.0.17763 Build 17763, y veo mi carpeta .ssh fácilmente en C: \ Users \ jrosario \ .ssh sin tener que editar permisos ni nada (aunque en el Explorador de archivos, seleccioné "Mostrar archivos, carpetas y unidades ocultos"): ingrese la descripción de la imagen aquí

Las claves se almacenan en un archivo de texto llamado known_hosts, que se parece aproximadamente a esto: ingrese la descripción de la imagen aquí

ShieldOfSalvation
fuente
5

Encontré una excepción notable que en Windows 10, usando la ruta descrita solo escribía los archivos en la carpeta si los nombres de archivo no estaban especificados en el generador ssh-keygen.

dar un nombre de clave personalizado hacía que los archivos que contenían las claves pública y privada RSA no se escribieran en la carpeta.

  • Abra la línea de comando de Windows
  • Tipo ssh-keygen
  • Deje el nombre del archivo en blanco, solo presione retorno,
  • Establece tu contraseña
  • Genere sus archivos clave. Ahora existirán. y ser almacenado enc:/Users/YourUserName/.ssh/

( usando Admin Command Line y Windows 10 Pro )

Martín
fuente
@Braineeee negativo. Esto NO sobrescribirá sus claves, si las claves existen actualmente en el destino, entonces en la ventana de la línea de comandos le preguntará si desea sobrescribir estas claves. Las demás claves de la misma carpeta no se ven afectadas . Sé que después de leer tu comentario hice una prueba y descubrí que era así.
Martin
¿Alguna vez averiguaste por qué?
Damainman
@Damainman lamentablemente todavía no he tenido la oportunidad de explorar esto más, así que no:-/
Martin
1
Gracias @Martin me salvaste el día. Puedo crear archivos con diferentes nombres. ¡Tenemos que proporcionar el separador de ruta en forma Unix! Lo siguiente funcionó para mí. ssh-keygen -t ed25519 -C "Mi clave Github" Ingrese el archivo en el que guardar la clave (C: \ Users \ bilix / .ssh / id_ed25519): c: \ users \ bilix \ .ssh \ id_ed25519_github
Prakash P
@PrakashP ¡encantado de ayudar!
Martin
4

Crear clave privada / pública:

  1. Abrir terminal de arriba ( git bash, PowerShell, cmd.exeetc.)
  2. Escribir ssh-keygen
  3. Presione enter para guardar el archivo predeterminado ( ~/.ssh/id_rsa)
  4. Presione enter para la contraseña predeterminada (sin contraseña)
  5. Presione enter nuevamente
  6. Mire la salida y asegúrese de que RSAsea 3072o superior

Ahora ha creado un par de claves pública / privada.

Para GIT, la clave debe tener la fuerza de 2048, debe estar ubicada en el .sshdirectorio de usuarios y ser llamada id_rsay id_rsa.pub. Al pegar las claves en cualquier lugar, asegúrese de utilizar un programa que no agregue nuevas líneas como VIM.

K - La toxicidad en SO está aumentando.
fuente
2

Finalmente lo hice funcionar ejecutando la línea de comando de apertura con "Ejecutar un administrador" a pesar de que ya era administrador y podía crear un directorio manualmente

adelaidedave
fuente
1

Si tiene Windows 10 con el cliente OpenSSH, es posible que pueda generar la clave, pero tendrá problemas para copiarla en el cuadro de destino de Linux, ya que el comando ssh-copy-id no forma parte del conjunto de herramientas del cliente.

Habiendo tenido este problema, escribí una pequeña función de PowerShell para abordar esto, que agrega a su perfil.

function ssh-copy-id([string]$userAtMachine, [string]$port = 22) {   
    # Get the generated public key
    $key = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub"
    # Verify that it exists
    if (!(Test-Path "$key")) {
        # Alert user
        Write-Error "ERROR: '$key' does not exist!"            
    }
    else {  
        # Copy the public key across
        & cat "$key" | ssh $userAtMachine -p $port "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1"      
    }
}

Puedes obtener la esencia aquí

Tengo un breve escrito sobre esto aquí.

Rad
fuente
0

Además, puede probar (para Windows 10 Pro) Ejecutar Powershell como administrador y escribir ssh-keygen -t rsa -b 4096 -C "[email protected]"

chavy
fuente