Skip to main content

Generación de una nueva clave SSH y adición al agente SSH

Una vez que has comprobado las claves SSH existentes, puedes generar una nueva clave SSH para usarla para la autenticación y luego agregarla al ssh-agent.

Acerca de las frases de contraseña de clave SSH

Puedes acceder a datos y escribirlos en repositorios en your GitHub Enterprise Server instance mediante SSH (protocolo Secure Shell). Al conectarse a través de SSH, se realiza la autenticación mediante un archivo de clave privada en el equipo local. Para obtener más información, consulta "Acerca de SSH".

Al generar una clave SSH, puedes agregar una frase de contraseña para proteger aún más la clave. Siempre que uses la clave, debes escribir la frase de contraseña. Si la clave tiene una frase de contraseña y no quieres escribir la frase de contraseña cada vez que uses la clave, puedes agregar la clave al agente SSH. El agente SSH administra las claves SSH y recuerda la frase de contraseña.

Si todavía no tienes una llave SSH, debes generar una nueva para utilizarla para autenticación. Si no estás seguro si ya tienes una llave SSH, puedes verificar si hay llaves existentes. Para obtener más información, consulta "Comprobar tus claves SSH existentes".

Si quieres utilizar una llave de seguridad de hardware para autenticarte en GitHub Enterprise Server, debes generar una llave SSH nueva para esta. Debes conectar tu llave de seguridad de hardware a tu computadora cuando te autentiques con el par de llaves. Para obtener más información, consulta las notas de la versiónde OpenSSH 8.2.

Generar una nueva clave SSH

Puedes generar una nueva clave SSH en el equipo local. Después de generar la clave, puedes agregar la clave a tu cuenta en your GitHub Enterprise Server instance para habilitar la autenticación para las operaciones de Git a través de SSH.

Si eres administrador de sitio web para your GitHub Enterprise Server instance, puedes usar la misma clave para concederte acceso SSH administrativo a la instancia. Para obtener más información, consulte"Acceso al shell administrativo (SSH)".

Nota: De forma predeterminada, con GitHub Enterprise Server 3.6 y versiones posteriores, a partir de la fecha límite de medianoche UTC del 1 de agosto de 2022, se producirá un error en las conexiones SSH que cumplan las dos condiciones siguientes.


  • La clave RSA se agregó a una cuenta de usuario en your GitHub Enterprise Server instance después de la fecha límite de medianoche UTC del 1 de agosto de 2022.
  • El cliente SSH firma el intento de conexión con la función hash SHA-1.

GitHub Enterprise Server 3.6 y versiones posteriores tampoco admite conexiones SSH que usan cifrados DSA, HMAC-SHA-1 o CBC. Las claves SSH RSA cargadas antes de la fecha límite pueden seguir autenticándose mediante la función hash SHA-1, siempre que la clave siga siendo válida. Para obtener más información sobre cómo encontrar la versión de GitHub Enterprise Server que usas, consulta "Acerca de las versiones de GitHub Docs".

El administrador del sitio puede ajustar la fecha límite de las conexiones que utilizan RSA-SHA-1 y puede bloquear todas las conexiones que utilizan RSA-SHA-1. Para obtener más información, ponte en contacto con el administrador del sitio o consulta "Configuración de conexiones SSH a la instancia".

  1. Abra TerminalTerminalGit Bash.

  2. Pega el siguiente texto, que sustituye tu dirección de correo electrónico en GitHub Enterprise Server.

    $ ssh-keygen -t ed25519 -C "your_email@example.com"

    Nota: Si usas un sistema heredado que no admite el algoritmo Ed25519, usa:

    $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

    Esto crea una llave SSH utilizando el correo electrónico proporcionado como etiqueta.

    > Generating public/private ALGORITHM key pair.

    Cuando se te pida: "Introduce un archivo en el que se pueda guardar la clave", teclea Enter para aceptar la ubicación de archivo predeterminada. Ten en cuenta que si ya creaste claves SSH anteriormente, ssh-keygen puede pedirte que vuelvas a escribir otra clave. En este caso, se recomienda crear una clave SSH con nombre personalizado. Para ello, escribe la ubicación de archivo predeterminada y reemplaza id_ssh_keyname por el nombre de clave personalizado.

    > Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM: [Press enter]
    > Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):[Press enter]
    > Enter a file in which to save the key (/home/YOU/.ssh/ALGORITHM):[Press enter]
  3. Cuando se le pida, escriba una frase de contraseña segura. Para obtener más información, consulta "Trabajar con contraseñas de clave SSH".

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]

Agregar tu clave SSH al ssh-agent

Antes de agregar una llave SSH nueva al ssh-agent para que administre tus llaves, debes haber verificado si habían llaves SSH existentes y haber generado una llave SSH nueva. Al agregar la clave SSH al agente, usa el comando ssh-add de macOS predeterminado y no una aplicación instalada por macports, homebrew o algún otro origen externo.

  1. Inicia el agente SSH en segundo plano.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566

    Dependiendo de tu ambiente, puede que necesites utilizar un comando diferente. Por ejemplo, es posible que tenga que usar el acceso raíz mediante la ejecución de sudo -s -H antes de iniciar ssh-agent, o bien que tenga que usar exec ssh-agent bash o exec ssh-agent zsh ejecutar ssh-agent.

  2. Si estás usando macOS Sierra 10.12.2 o una versión posterior, deberás modificar tu archivo ~/.ssh/config para cargar las claves automáticamente en el agente ssh-agent y almacenar las contraseñas en tu cadena de claves.

    • En primer lugar, comprueba si el archivo ~/.ssh/config existe en la ubicación predeterminada.

      $ open ~/.ssh/config
      > The file /Users/YOU/.ssh/config does not exist.
    • Si el archivo no existe, créalo.

      $ touch ~/.ssh/config
    • Abre el archivo ~/.ssh/config y, a continuación, modifica el archivo para que contenga las líneas siguientes. Si tu llave SSH tiene un nombre o ruta diferentes que el código de ejemplo, modifica el nombre de archivo o ruta para que coincida con tu configuración actual.

      Host *.HOSTNAME
        AddKeysToAgent yes
        UseKeychain yes
        IdentityFile ~/.ssh/id_ed25519
      

      Notas:

      • Si decides no agregar una frase de contraseña a la clave, debes omitir la línea UseKeychain.

      • Si ves un error Bad configuration option: usekeychain, agrega una línea adicional a la sección Host *.HOSTNAME de la configuración.

        Host *.HOSTNAME
          IgnoreUnknown UseKeychain
        
  3. Agrega tu llave privada SSH al ssh-agent y almacena tu contraseña en tu keychain. Si ha creado su clave con un nombre diferente o si está agregando una clave existente que tenga un nombre diferente, reemplace id_ed25519 en el comando con el nombre de su archivo de clave privada.

    $ ssh-add --apple-use-keychain ~/.ssh/id_ed25519

    Nota: La opción --apple-use-keychain almacena la frase de contraseña en tu cadena de claves cuando agregas una clave SSH al ssh-agent. Si eliges no agregar una frase de contraseña a tu clave, ejecuta el comando sin la opción --apple-use-keychain.

    La opción --apple-use-keychain está en la versión estándar de Apple de ssh-add. En las versiones de MacOS anteriores a Monterey (12.0), las marcas --apple-use-keychain y --apple-load-keychain usaban la sintaxis -K y -A, respectivamente.

    Si no tienes instalada la versión estándar de Apple de ssh-add, recibirás un mensaje de error. Para obtener más información, consulta: "Error: ssh-add: opción no válida -- K."

  4. Agrega la llave SSH a tu cuenta en GitHub Enterprise Server. Para obtener más información, consulta "Adición de una clave SSHa tu cuenta de GitHub".

Si ha instalado GitHub Desktop, puede usarlo para clonar repositorios y no tener que utilizar claves SSH.

  1. Verifica que el agente ssh-agent se esté ejecutando. Puedes usar las instrucciones de "Auto-lanzamiento ssh-agent" en "Trabajar con contraseñas de clave SSH o iniciarla manualmente:

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
  2. Agrega tu llave privada SSH al ssh-agent. Si ha creado su clave con un nombre diferente o si está agregando una clave existente que tenga un nombre diferente, reemplace id_ed25519 en el comando con el nombre de su archivo de clave privada.

    $ ssh-add ~/.ssh/id_ed25519

  3. Agrega la llave SSH a tu cuenta en GitHub Enterprise Server. Para obtener más información, consulta "Adición de una clave SSHa tu cuenta de GitHub".

  1. Inicia el agente SSH en segundo plano.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566

    Dependiendo de tu ambiente, puede que necesites utilizar un comando diferente. Por ejemplo, es posible que tenga que usar el acceso raíz mediante la ejecución de sudo -s -H antes de iniciar ssh-agent, o bien que tenga que usar exec ssh-agent bash o exec ssh-agent zsh ejecutar ssh-agent.

  2. Agrega tu llave privada SSH al ssh-agent. Si ha creado su clave con un nombre diferente o si está agregando una clave existente que tenga un nombre diferente, reemplace id_ed25519 en el comando con el nombre de su archivo de clave privada.

    $ ssh-add ~/.ssh/id_ed25519

  3. Agrega la llave SSH a tu cuenta en GitHub Enterprise Server. Para obtener más información, consulta "Adición de una clave SSHa tu cuenta de GitHub".

Generar una llave SSH nueva para una llave de seguridad de hardware

Si estás utilizando macOS o Linux, puede que necesites actualizar tu cliente SSH o instalar un cliente SSH nuevo antes de generar una llave SSH nueva. Para obtener más información, consulta "Error: Tipo de clave desconocido".

  1. Insterta tu clave de seguridad de hardware en tu computadora.

  2. Abra TerminalTerminalGit Bash.

  3. Pega el siguiente texto, sustitutyendo la dirección de correo electrónico por tu cuenta de GitHub Enterprise Server.

    $ ssh-keygen -t ed25519-sk -C "YOUR_EMAIL"

    Nota: Si se produce un error en el comando y recibes los errores invalid format o feature not supported, puede que estés usando una clave de seguridad de hardware que no admite el algoritmo Ed25519. En vez de esto, ingresa el siguiente comando.

    $ ssh-keygen -t ecdsa-sk -C "your_email@example.com"
  4. Cuando se te solicite, pulsa el botón en tu llave de seguridad de hardware.

  5. Cuando se te pida "Ingresar un archivo en donde se pueda guardar la llave", teclea Enter para aceptar la ubicación predeterminada.

    > Enter a file in which to save the key (/Users/YOU/.ssh/id_ed25519_sk): [Press enter]
    > Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ed25519_sk):[Press enter]
    > Enter a file in which to save the key (/home/YOU/.ssh/id_ed25519_sk):[Press enter]
  6. Cuando se te pida que escribas una frase de contraseña, presiona Entrar.

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]
  7. Agrega la llave SSH a tu cuenta en GitHub. Para obtener más información, consulta "Adición de una clave SSHa tu cuenta de GitHub".