¿Debería utilizarse el comando sudo
o los privilegios elevados con Git?
No deberías utilizar el comando sudo
con Git, ni los privilegios elevados tales como los de administrador. 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_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 nombre de host 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 Server, 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 Server, 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
- Abre la 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 tienes GitHub Desktop instalado, puedes usarlo para clonar repositorios y no manejar claves SSH.
-
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
-
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)
- Abre la 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 larga cadena de números y letras. Si no imprime nada, necesitarás generar una nueva clave SSH y asociarla con GitHub Enterprise Server.
Tip: En la mayoría de los sistemas, las llaves privadas predeterminadas (~/.ssh/id_rsa
y ~/.ssh/identity
) se agregan 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 Server 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, da clic en tu foto de perfil y después da clic en Configuración.
-
En la barra lateral de configuración de usuario, da clic en Llaves SSH y GPG.
-
Compara la lista de claves SSH con el resultado que arroja el 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, da clic en tu foto de perfil y después da clic en Configuración.
-
En la barra lateral de configuración de usuario, da clic en Llaves SSH y GPG.
-
Compara la lista de claves SSH con el resultado que arroja el 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, da clic en tu foto de perfil y después da clic en Configuración.
-
En la barra lateral de configuración de usuario, da clic en Llaves SSH y GPG.
-
Compara la lista de claves SSH con el resultado que arroja el comando
ssh-add
.
Si no ves tu llave pública en GitHub Enterprise Server, será necesario que agregues tu clave SSH a GitHub Enterprise Server para asociarla con tu computadora.
Advertencia: Si ves una clave SSH que no te resulta familiar en GitHub Enterprise Server, elimínala de inmediato y contáctate con tu administrador de sitio 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".