¿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 un motivo muy fundado, debe usar sudo
y, después. asegurarse de que lo está usando con cada comando (probablemente sea mejor usar su
para obtener un shell como raíz en ese momento). 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
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@HOSTNAME
> 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 HOSTNAME port 22.
La conexión debe realizarse 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@HOSTNAME
> 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 Enterprise Server, puede cambiar la dirección URL remota para usar el usuario "git".
Para verificar tu conexión, debes escribir:
$ ssh -T git@HOSTNAME
> 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
Nota: Los comandos eval anteriores inician ssh-agent manualmente en el ambiente. 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 Enterprise Server.
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@[hostname]
:
$ ssh -vT git@HOSTNAME
> ...
> 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@HOSTNAME
> ...
> 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, haga clic en la foto del perfil y, luego, en Settings (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, haga clic en la foto del perfil y, luego, en Settings (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, haga clic en la foto del perfil y, luego, en Settings (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 Enterprise Server, deberá agregar la clave SSH a GitHub Enterprise Server para asociarla con el equipo.
Advertencia: Si ve una clave SSH con la que no está familiarizado en GitHub Enterprise Server, elimínela de inmediato y póngase en contacto con el administrador del sitio para obtener más ayuda. Una clave pública no identificada puede indicar un posible problema de seguridad. Para obtener más información, vea «Revisar tus claves SSH».