Cómo arreglar que Git siempre solicite credenciales de usuario para la autenticación HTTP (S)

Para acceder o trabajar con un repositorio Git remoto, puede usar los &ltstrong&gtprotocolos &lt/strong&gtSSH o HTTP (S) con el primero, cuando se trata de repositorios privados, simplemente puede configurar las claves SSH sin una frase de contraseña, lo que le permite transferir datos de forma segura sin escribir su nombre de usuario y contraseña.

Sin embargo, con HTTP (S) , cada conexión le pedirá que ingrese su nombre de usuario y contraseña (cuando Git necesite autenticación para un contexto de URL en particular) los usuarios de Github lo saben bien.

En este artículo, le mostraremos cómo arreglar Git siempre solicitando credenciales de usuario para acceder a través de HTTP (S) . Explicaremos diferentes formas de evitar que Git solicite repetidamente el nombre de usuario y la contraseña cuando interactúa con un repositorio remoto a través de HTTP (S) .

Cómo instalar Git en Linux

Si no tiene el paquete Git instalado en su sistema, ejecute el comando apropiado para su distribución de Linux para instalarlo (use el comando Sudo donde sea necesario).

$ sudo apt install git      [On Debian/Ubuntu]
# yum install git           [On CentOS/RHEL/Fedora]
$ sudo zypper install git   [On OpenSuse]
$ sudo pacman -S git        [On Arch Linux]

Ingresando el nombre de usuario y la contraseña de Git en la URL remota

Como mencionamos anteriormente, al clonar un repositorio Git remoto a través de HTTP (S) , cada conexión necesita un nombre de usuario y una contraseña como se muestra.

Clonar repositorio Git remotoClonar repositorio Git remoto

Para evitar que Git le solicite su nombre de usuario y contraseña , puede ingresar las credenciales de inicio de sesión en la URL como se muestra.

$ sudo git clone https://username:[email protected]/username/repo_name.git
OR
$ sudo git clone https://username:[email protected]/username/repo_name.git local_folder

Agregar credenciales de Git en URLAgregar credenciales de Git en URL

El principal inconveniente de este método es que su nombre de usuario y contraseña se guardarán en el comando en el archivo de historial de Shell.

Ver historial de ShellVer historial de Shell

así como en el archivo .git / config en la carpeta local, que presenta un riesgo de seguridad.

$ cat .git/config

Ver las credenciales de Git en el archivo de configuraciónVer las credenciales de Git en el archivo de configuración

Nota : Para los usuarios de Github que han habilitado la autenticación de dos factores o están accediendo a una organización que usa inicio de sesión único SAML , deben generar y usar un token de acceso personal en lugar de ingresar su contraseña para HTTPS Git (como se muestra en los resultados de muestra en esta guía). Para generar un token de acceso personal, en Github , vaya a Configuración =&ampgt Configuración de desarrollador =&ampgt Tokens de acceso &ltstrong&gtpersonal&lt/strong&gt .

Guardar el nombre de usuario y la contraseña del repositorio remoto de Git en el disco

El segundo método es utilizar el asistente de credenciales de Git para guardar su nombre de usuario y contraseña en un archivo sin formato en el disco, como se muestra.

$ git config credential.helper store
OR
$ git config --global credential.helper store

A partir de ahora, Git escribirá credenciales en el archivo /.git-credentials para cada contexto de URL, cuando se acceda por primera vez. Para ver el contenido de este archivo, puede usar el comando cat como se muestra.

$ cat  /.git-credentials

Ver credenciales de Git guardadas en discoVer credenciales de Git guardadas en disco

Para los comandos posteriores para el mismo contexto de URL, Git leerá sus credenciales de usuario del archivo anterior.

Al igual que el método anterior, esta forma de pasar las credenciales de usuario a Git tampoco es segura, ya que el archivo de almacenamiento no está encriptado y está protegido solo por permisos estándar del sistema de archivos.

El tercer método que se explica a continuación se considera más seguro.

Almacenamiento en caché del nombre de usuario y la contraseña del repositorio Git remoto en la memoria

Por último, pero no menos importante, también puede utilizar el asistente de credenciales de Git para guardar temporalmente sus credenciales en la memoria durante algún tiempo. Para hacer eso, emita el siguiente comando.

$ git config credential.helper cache
OR
$ git config --global credential.helper cache

Después de ejecutar el comando anterior, cuando intente acceder a un repositorio privado remoto por primera vez, Git le pedirá su nombre de usuario y contraseña y los guardará en la memoria durante algún tiempo.

Caché de credenciales de Git en la memoriaCaché de credenciales de Git en la memoria

El tiempo de almacenamiento en caché predeterminado es de 900 segundos (o 15 minutos ), después de lo cual Git le pedirá que ingrese su nombre de usuario y contraseña nuevamente. Puede cambiarlo de la siguiente manera (1800 segundos = 30 minutos o 3600 segundos = 1 hora).

$ git config --global credential.helper 'cache --timeout=18000'
OR
$ git config --global credential.helper 'cache --timeout=36000'

Para obtener más información sobre Git y los ayudantes de credenciales, consulte sus páginas de manual.

$ man git
$ man git-credential-cache
$ man git-credential-store

¿Fue útil esta guía? Háganos saber a través del formulario de comentarios a continuación. También puede compartir sus preguntas o pensamientos sobre este tema.

Git , Preguntas

Leave a Comment

Your email address will not be published. Required fields are marked *

Hazlo Linux