Nota:
Este artículo contiene comandos o ejemplos que usan el dominio github.com. Puedes acceder a GitHub en un dominio diferente, como octocorp.ghe.com.
¿Se debe usar el comando sudo o los privilegios elevados con Git?
No debería utilizar el comando sudo con Git, ni los privilegios elevados, tales como los permisos de administrador.
Si tiene una razón muy buena , debe usar sudo y, después, asegúrese de que la usa con cada comando. Si genera claves SSH sin sudo e intenta usar un comando como sudo git push, no estará usando las mismas claves que ha generado.
Verifica si estás conectado al servidor correcto
Para asegurarte de que te estás conectando al dominio correcto, puedes ingresar el siguiente comando:
ssh -vT git@github.com
ssh -vT git@github.com
Debería ver este resultado:
> OpenSSH_8.1p1, LibreSSL 2.7.3
> debug1: Reading configuration data /Users/YOU/.ssh/config
> debug1: Reading configuration data /etc/ssh/ssh_config
> debug1: /etc/ssh/ssh_config line 47: Applying options for *
> debug1: Connecting to github.com port 22.
La conexión debe realizarse en el puerto 22, a menos que se invalide la configuración para usar SSH a través de HTTPS.
Siempre usa el usuario "git"
Todas las conexiones, incluidas las de URLs remotas, deben hacerse como el usuario "git". Si intenta conectarse con su GitHub nombre de usuario, se producirá un error:
$ ssh -T GITHUB-USERNAME@github.com
> Permission denied (publickey).
Si la conexión ha fallado y está usando una URL remota con su GitHub nombre de usuario, puede cambiar la URL remota para usar el usuario "git".
Para verificar tu conexión, debes escribir:
ssh -T git@github.com
ssh -T git@github.com
Debería ver este resultado:
> Hi USERNAME! You've successfully authenticated...
Advertencia
Si estás accediendo a GitHub en un dominio diferente, como octocorp.ghe.com, entonces debe reemplazar git@github.com con octocorp@octocorp.ghe.com.
ssh -T octocorp@octocorp.ghe.com
Asegúrate de tener una clave que esté en uso
-
Abra TerminalTerminalGit Bash.
-
Verifica si tienes una llave privada generada y cargada en SSH.
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566 $ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
Si ha instalado GitHub Desktop, puede usarlo para clonar repositorios y no tener que utilizar claves SSH.
-
Si usa Git Bash, active ssh-agent:
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566Si usa otro símbolo del sistema de terminal, como Git para Windows, active ssh-agent:
# start the ssh-agent in the background $ eval $(ssh-agent -s) > Agent pid 59566Nota:
Los comandos eval anteriores inician ssh-agent manualmente en el entorno. Estos comandos pueden producir un error si ssh-agent ya se ejecuta como un servicio del sistema en segundo plano. Si esto sucede, se recomienda comprobar la documentación pertinente para el ambiente.
-
Verifica si tienes una llave privada generada y cargada en SSH.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
-
Abra TerminalTerminalGit Bash.
-
Verifica si tienes una llave privada generada y cargada en SSH.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
El comando ssh-adddebe imprimir una cadena larga de números y letras. Si no imprime nada, deberá generar una nueva clave SSH y asociarla a GitHub.
Sugerencia
En la mayoría de los sistemas, las claves privadas predeterminadas ~/.ssh/id_rsa y ~/.ssh/identity se agregan automáticamente al agente de autenticación SSH. No debe ejecutarse ssh-add path/to/key, a menos que invalide el nombre de archivo al generar una clave.
Más detalles
También puede comprobar que la clave se está usando. Para ello, intente conectarse a git@github.com:
ssh -vT git@github.com
ssh -vT git@github.com
Si usa una clave privada con un nombre de archivo no predeterminado, use la opción para especificar la -i ruta de acceso a la clave:
ssh -i ~/.ssh/KEY-FILE -vT git@github.com
ssh -i ~/.ssh/KEY-FILE -vT git@github.com
Se ve un resultado como este:
> ...
> 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 este ejemplo, SSH no encontró ninguna clave.
- El "-1" al final de las líneas que dicen "archivo de identidad" significan que SSH no pudo encontrar un archivo para usar.
- En las líneas "Probando llave privada” se indica que no se encontró ningún archivo.
Si existiera un archivo, esas líneas indicarían "1" y "Ofreciendo clave pública", como en esta salida:
> ...
> 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
Debe proporcionar su clave pública a GitHub para establecer una conexión segura.
-
Abre Terminal.
-
Inicia el agente SSH en segundo plano.
$ eval "$(ssh-agent -s)" > Agent pid 59566 -
Busca tu huella digital de llave pública y anótala.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) -
En la esquina superior derecha de cualquier página en GitHub, haz clic en la fotografía de perfil y luego en Settings.
-
En la sección "Access" de la barra lateral, haz clic en SSH and GPG keys.
-
Compare la lista de claves SSH con la salida del comando
ssh-add.
-
Abre la línea de comando.
-
Inicia el agente SSH en segundo plano.
$ ssh-agent -s > Agent pid 59566 -
Busca tu huella digital de llave pública y anótala.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) -
En la esquina superior derecha de cualquier página en GitHub, haz clic en la fotografía de perfil y luego en Settings.
-
En la sección "Access" de la barra lateral, haz clic en SSH and GPG keys.
-
Compare la lista de claves SSH con la salida del comando
ssh-add.
-
Abre Terminal.
-
Inicia el agente SSH en segundo plano.
$ eval "$(ssh-agent -s)" > Agent pid 59566 -
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) -
En la esquina superior derecha de cualquier página en GitHub, haz clic en la fotografía de perfil y luego en Settings.
-
En la sección "Access" de la barra lateral, haz clic en SSH and GPG keys.
-
Compare la lista de claves SSH con la salida del comando
ssh-add.
Si no ves tu clave pública en GitHub, tendrás que añadir tu clave SSH a GitHub para asociarla con tu ordenador.
Advertencia
Si ve una clave SSH con la que no está familiarizado en GitHub, elimínela inmediatamente y póngase en contacto con nosotros a través del portal para obtener más ayuda. Una clave pública no identificada puede indicar un posible problema de seguridad. Para más información, consulta Revisar tus claves SSH.