Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.

Esta versión de GitHub Enterprise se discontinuará el Esta versión de GitHub Enterprise se discontinuó el 2020-08-20. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener un mejor desempeño, más seguridad y nuevas características, actualiza a la última versión de GitHub Enterprise. Para obtener ayuda con la actualización, contacta al soporte de GitHub Enterprise.

Versión del artículo: Enterprise Server 2.18

Error: Permiso denegado (publickey)

Un error de "Permiso denegado" significa que el servidor rechazó tu conexión. Esto puede suceder por varias razones. A continuación se explican los ejemplos más comunes.

En este artículo

¿El comando sudo se debe usar con Git?

No deberías estar usando el comando sudo con Git. Si tienes una muy buena razón para usar sudo, asegúrate de estar usándolo con todos los comandos (probablemente es mejor que uses su para obtener un shell como raíz en este punto). Si generas claves SSH sin sudo y luego intentas usar un comando como sudo git push, no estarás usando las mismas claves que generaste.

Verifica si estás conectado al servidor correcto

Escribir no es fácil. Todos los sabemos. Escribe con cuidado; no podrás conectarte con "githib.com" ni a "guthub.com". En algunos casos, una red corporativa puede generar problemas al tratar de resolver también el registro de DNS.

Para asegurarte de que te estás conectando al dominio correcto, puedes ingresar el siguiente comando:

$ ssh -vT git@nombre de host
> OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
> debug1: Reading configuration data /Users/you/.ssh/config
> debug1: Reading configuration data /etc/ssh_config
> debug1: Applying options for *
> debug1: Connecting to nombre de host [IP ADDRESS] port 22.

La conexión debe establecerse en el puerto 22.

Siempre usa el usuario "git"

Todas las conexiones, incluidas las de URL remotas, deben hacerse como el usuario "git". Si intentas conectarte con tu nombre de usuario de GitHub Enterprise, la conexión fallará:

$ ssh -T GITHUB-USERNAME@nombre de host
> Permission denied (publickey).

Si tu conexión ha fallado y estás usando una URL remota con tu nombre de usuario de GitHub Enterprise, puedes cambiar tu URL remota para usar el usuario "git".

Para verificar tu conexión, debes escribir:

$ ssh -T git@nombre de host
> Hi username! You've successfully authenticated...

Asegúrate de tener una clave que esté en uso

  1. Abre la TerminalTerminalGit Bash.

  2. Verifica si tienes una llave privada generada y cargada en SSH. Si estás usando OpenSSH 6.7 o más antigua:

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    $ ssh-add -l
    > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)

    Si estás usando OpenSSH 6.8 o una versión más reciente:

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    $ ssh-add -l -E md5
    > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)

Si tienes GitHub Desktop instalado, puedes usarlo para clonar repositorios y no manejar claves SSH.

  1. Si estás usando Git Bash, activa el ssh-agent:

    # inicia el ssh-agent en segundo plano
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566

    Si estás usando otro símbolo de terminal, como Git para Windows, activa el ssh-agent:

    # start the ssh-agent in the background
    $ eval $(ssh-agent -s)
    > Agent pid 59566
  2. Verifica si tienes una llave privada generada y cargada en SSH. Si estás usando OpenSSH 6.7 o una versión anterior:

    $ ssh-add -l
    > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)

    Si estás usando OpenSSH 6.8 o una versión más reciente:

    $ ssh-add -l -E md5
    > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)
  1. Abre la TerminalTerminalGit Bash.

  2. Verifica si tienes una llave privada generada y cargada en SSH. Si estás usando OpenSSH 6.7 o una versión anterior:

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    $ ssh-add -l
    > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)

    Si estás usando OpenSSH 6.8 o una versión más reciente:

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    $ ssh-add -l -E md5
    > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)

El comando ssh-add debe imprimir una larga cadena de números y letras. Si no imprime nada, necesitarás generar una nueva clave SSH y asociarla con GitHub Enterprise.

Consejo: En la mayoría de los sistemas las claves privadas predeterminadas (~/.ssh/id_rsa, ~/. sh/id_dsa y ~/.ssh/identity) se añaden automáticamente al agente de autenticación SSH. No debería ser necesario que ejecutes ssh-add path/to/key a menos que anules el nombre del archivo cuando generes una llave.

Más detalles

Para verificar si esa llave se está usando, también puedes intentar conectarte con git@[hostname]:

$ ssh -vT git@nombre de host
> ...
> debug1: identity file /Users/you/.ssh/id_rsa type -1
> debug1: identity file /Users/you/.ssh/id_rsa-cert type -1
> debug1: identity file /Users/you/.ssh/id_dsa type -1
> debug1: identity file /Users/you/.ssh/id_dsa-cert type -1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Trying private key: /Users/you/.ssh/id_rsa
> debug1: Trying private key: /Users/you/.ssh/id_dsa
> debug1: No more authentication methods to try.
> Permission denied (publickey).

En ese ejemplo, no teníamos ninguna llave para que usara SSH. El "-1" al final de las líneas que dicen "identity file" (identidad del archivo) significan que SSH no pudo encontrar un archivo para usar. Luego, en las líneas que indican "Trying private key" (Probando llave privada) también indica que no se encontró ningún archivo. Si existiera un archivo, esas líneas dirían "1" y "Ofreciendo llave privada", respectivamente:

$ ssh -vT git@nombre de host
> ...
> debug1: identity file /Users/you/.ssh/id_rsa type 1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Offering RSA public key: /Users/you/.ssh/id_rsa

Verifica si la llave pública está asociada a tu cuenta

Debes indicarle tu llave privada a GitHub Enterprise para establecer una conexión segura.

  1. Abre Terminal.

  2. Inicia el agente SSH en segundo plano.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
  3. Busca tu huella digital de llave pública y anótala. Si estás usando OpenSSH 6.7 o una versión anterior:

    $ ssh-add -l
    > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)

    Si estás usando OpenSSH 6.8 o más reciente:

    $ ssh-add -l -E md5
    > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)
  4. En la esquina superior derecha de cualquier página, da clic en tu foto de perfil y después da clic en Configuración.

    Icono Settings (Parámetros) en la barra de usuario

  5. En la barra lateral de configuración de usuario, da clic en Llaves SSH y GPG.

    Llaves de autenticación

  6. Compara la lista de claves SSH con el resultado que arroja el comando ssh-add.

    Lista de claves SSH en GitHub Enterprise

  1. Abre la línea de comando.

  2. Inicia el agente SSH en segundo plano.

    $ ssh-agent -s
    > Agent pid 59566
  3. Busca tu huella digital de llave pública y anótala. Si estás usando OpenSSH 6.7 o una versión anterior:

    $ ssh-add -l
    > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)

    Si estás usando OpenSSH 6.8 o una versión más reciente:

    $ ssh-add -l -E md5
    > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)
  4. En la esquina superior derecha de cualquier página, da clic en tu foto de perfil y después da clic en Configuración.

    Icono Settings (Parámetros) en la barra de usuario

  5. En la barra lateral de configuración de usuario, da clic en Llaves SSH y GPG.

    Llaves de autenticación

  6. Compara la lista de claves SSH con el resultado que arroja el comando ssh-add.

    Lista de claves SSH en GitHub Enterprise

  1. Abre Terminal.

  2. Inicia el agente SSH en segundo plano.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
  3. Busca tu huella digital de llave pública y anótala. Si estás usando OpenSSH 6.7 o una versión anterior:

    $ ssh-add -l
    > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)

    Si estás usando OpenSSH 6.8 o una versión más reciente:

    $ ssh-add -l -E md5
    > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)
  4. En la esquina superior derecha de cualquier página, da clic en tu foto de perfil y después da clic en Configuración.

    Icono Settings (Parámetros) en la barra de usuario

  5. En la barra lateral de configuración de usuario, da clic en Llaves SSH y GPG.

    Llaves de autenticación

  6. Compara la lista de claves SSH con el resultado que arroja el comando ssh-add.

    Lista de claves SSH en GitHub Enterprise

Si no ves tu llave pública en GitHub Enterprise, será necesario que agregues tu clave SSH a GitHub Enterprise para asociarla con tu computadora.

Advertencia: Si ves una clave SSH que no te resulta familiar en GitHub Enterprise, elimínala de inmediato y contáctate con tu administrador del sitio empresarial GitHub para recibir más ayuda. Una llave pública no identificada puede indicar un posible problema de seguridad. Para obtener más información, consulta "Revisar tus claves SSH".

Pregunta a una persona

¿No puedes encontrar lo que estás buscando?

Contáctanos