¿Cómo recupero la clave pública de una clave privada SSH?

369

Una clave privada SSH generada por ssh-keygen contiene una parte de clave pública. ¿Cómo recupero esta clave pública de la clave privada? Perdí mi clave pública y necesito poner el contenido de esta clave pública en el archivo authorized_keys de los servidores y no quiero crear un nuevo par de claves.

Alternativamente redactado: ¿cómo creo el archivo id_rsa.pub de un archivo id_rsa ?

    
pregunta Lekensteyn 18.07.2011 - 11:57

2 respuestas

571

He encontrado la respuesta en Server Fault: ¿Crear una clave SSH pública desde la clave privada?

La opción -y muestra la clave pública:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

Como nota al margen, el comentario de la clave pública se pierde. He tenido un sitio que requirió el comentario (¿Launchpad?), Por lo que necesita editar ~/.ssh/id_rsa.pub y agregar un comentario a la primera línea con un espacio entre el comentario y los datos clave. Una clave pública de ejemplo se muestra truncada a continuación.

ssh-rsa AAAA..../VqDjtS5 ubuntu@ubuntu

Para las claves que se agregaron al Agente SSH (un programa que se ejecuta en segundo plano y evita la necesidad de volver a ingresar la frase de contraseña del archivo de claves una y otra vez), puede usar el comando ssh-add -L para ver las claves públicas para las claves que se agregaron al agente (a través de ssh-add -l ). Esto es útil cuando la clave SSH está almacenada en una tarjeta inteligente (y no es posible acceder al archivo de clave privada).

    
respondido por el Lekensteyn 18.07.2011 - 12:12
12

Esta es una solución específicamente para usuarios que usan Windows para SSH en sus máquinas remotas, incluidas las imágenes en la nube en Amazon AWS y GCE.

(Descargo de responsabilidad)

Hace poco utilicé esta solución para iniciar sesión remotamente en nuevas imágenes de máquinas virtuales implementadas en GCE.

Herramientas utilizadas:

  1. puttygen
  2. WinSCP

Pasos para realizar:

  1. Genera un par de claves públicas / privadas usando puttygen.
  2. Cargue una clave pública en su servidor en la nube o en una ubicación remota.

Descripción (cómo hacerlo):

  1. Genera una clave / par o usa una clave privada existente:

    Si tiene una clave privada:

    Abra puttygen, presione el botón Cargar y seleccione su archivo de clave privada (* .pem).

    Si no tiene una clave privada:

    • Abrir puttygen,
    • Seleccione el tipo de clave deseado SSH2 DSA (puede usar RSA o DSA) dentro de la sección Parámetros ... y es importante que deje el campo de frase de contraseña en blanco,
    • Presione generar y siga las instrucciones para generar pares de claves (públicas / privadas).

  2. Crea un nuevo archivo 'authorized_keys' (con el Bloc de notas):

    Copie los datos de su clave pública de la sección "Clave pública para pegar en el archivo autorizado de OpenSSH" de PuTTY Key Generator y pegue los datos clave en el archivo "authorized_keys".

    Asegúrese de que solo haya una línea de texto en este archivo.

  3. Cargue la clave en un servidor Linux:

    • Abre WinSCP,
    • Seleccione el protocolo de archivo SFTP e inicie sesión con sus credenciales SSH.
    • En caso de éxito, verá la estructura del directorio de inicio en su máquina remota.

    Cargue el archivo authorized_keys en el directorio de inicio en la máquina remota.

  4. Establece los permisos adecuados:

    Crear un directorio .ssh (si no existe)

    Copie el archivo authorized_keys en el directorio .ssh (esto reemplazará cualquier archivo authorized_keys existente; tome nota de esto).

    Si el archivo existe, simplemente agregue el contenido de este archivo al archivo existente.

    Ejecutar comandos para configurar permisos:

    sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys
    

Ahora podrá ingresar a una máquina remota sin ingresar credenciales todas las veces.

Lectura adicional:

  1. Generación y carga de claves SSH en Windows

  2. Autenticación sin contraseña con OpenSSH Clave, certificados .pem y .pub

respondido por el devprashant 20.11.2015 - 07:18

Lea otras preguntas en las etiquetas