Skip to main content

Esta versión de GitHub Enterprise Server se discontinuó el 2024-03-26. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise Server. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

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.

Platform navigation

Acerca de las frases de contraseña de clave SSH

Puedes acceder y escribir datos en repositorios de tu instancia de GitHub Enterprise Server 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 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, vea «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, puede agregar la clave pública a la cuenta en tu instancia de GitHub Enterprise Server para habilitar la autenticación para las operaciones de Git a través de SSH.

Si eres administrador de sitio web para tu instancia de GitHub Enterprise Server, puedes usar la misma clave para concederte acceso SSH administrativo a la instancia. Para obtener más información, vea «Acceder 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 tu instancia de GitHub Enterprise Server 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 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 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 texto siguiente, reemplazando el correo electrónico usado en el ejemplo por tu dirección de correo electrónico de 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_ALGORITHM por el nombre de clave personalizado.

    > Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM): [Press enter]
    
    > Enter 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/id_ALGORITHM):[Press enter]
    
  3. Cuando se le pida, escriba una frase de contraseña segura. Para obtener más información, vea «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 has creado tu clave con otro nombre o si vas a agregar una clave existente que tiene otro nombre, reemplaza id_ed25519 en el comando por el nombre de tu 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, vea «Error: ssh-add: opción ilegal -- apple-use-keychain».

    Si te sigue pidiendo la frase de contraseña, es posible que tengas que agregar el comando al archivo ~/.zshrc (o el archivo ~/.bashrc de Bash).

  4. Agrega la clave pública de SSH a tu cuenta en GitHub. Para obtener más información, vea «Agregar una clave SSH nueva a tu cuenta de GitHub».

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

  1. En una nueva ventana de PowerShell con privilegios elevados de administrador, asegúrate de que el agente ssh se esté ejecutando. Puede 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
    Get-Service -Name ssh-agent | Set-Service -StartupType Manual
    Start-Service ssh-agent
    
  2. En una ventana de terminal sin permisos elevados, agregue la clave privada SSH al agente ssh. Si has creado tu clave con otro nombre o si vas a agregar una clave existente que tiene otro nombre, reemplaza id_ed25519 en el comando por el nombre de tu archivo de clave privada.

    ssh-add c:/Users/YOU/.ssh/id_ed25519
    
  3. Agrega la clave pública de SSH a tu cuenta en GitHub. Para obtener más información, vea «Agregar una clave SSH nueva a 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 has creado tu clave con otro nombre o si vas a agregar una clave existente que tiene otro nombre, reemplaza id_ed25519 en el comando por el nombre de tu archivo de clave privada.

    ssh-add ~/.ssh/id_ed25519
    
  3. Agrega la clave pública de SSH a tu cuenta en GitHub. Para obtener más información, vea «Agregar una clave SSH nueva a 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, vea «Error: Unknown key type».

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

  2. Abra TerminalTerminalGit Bash.

  3. Pega el texto siguiente, reemplazando la dirección de correo electrónico usada en el ejemplo por la dirección de correo electrónico asociada a tu cuenta en GitHub Enterprise Server.

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

    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 clave pública de SSH a tu cuenta en GitHub. Para obtener más información, vea «Agregar una clave SSH nueva a tu cuenta de GitHub».