¿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 URL remotas, deben hacerse como el usuario "git". Si intentas conectarte con tu nombre de usuario de GitHub, la conexión fallará:
$ ssh -T GITHUB-USERNAME@github.com
> Permission denied (publickey).
Si se ha producido un error en la conexión y usa una dirección URL remota con el nombre de usuario de GitHub, puede cambiar la dirección 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...
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 59566
Si 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 59566
Note
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-add
debe imprimir una cadena larga de números y letras. Si no imprime nada, deberá generar una nueva clave SSH y asociarla a GitHub.
Tip
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
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
Debes indicarle tu llave privada 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, haga clic en la fotografía de perfil y luego en Configuración.
-
En la sección "Acceso" de la barra lateral, haz clic en Claves SSH y GPG.
-
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, haga clic en la fotografía de perfil y luego en Configuración.
-
En la sección "Acceso" de la barra lateral, haz clic en Claves SSH y GPG.
-
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, haga clic en la fotografía de perfil y luego en Configuración.
-
En la sección "Acceso" de la barra lateral, haz clic en Claves SSH y GPG.
-
Compare la lista de claves SSH con la salida del comando
ssh-add
.
Si no ve la clave pública en GitHub, deberá agregar la clave SSH a GitHub para asociarla con el equipo.
Warning
Si ves una clave SSH que no te resulta familiar en GitHub, elimínala de inmediato y ponte en contacto con con nosotros a través del Soporte técnico de GitHub 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.