Git sigue pidiéndome una contraseña

Resuelto Catherine asked hace 13 años • 33 respuestas

He estado usando Git por un tiempo, pero las constantes solicitudes de contraseña están empezando a volverme loco.

Estoy usando Mac OS X y GitHub, y configuro Git y mis claves SSH según las instrucciones de la página Configurar Git de GitHub .

También agregué la clave SSH de github a mi llavero de Mac OS X, como se menciona en la página de frases de contraseña de clave SSH de GitHub . Mi clave pública está registrada en Git.

Sin embargo, cada vez que intento extraer Git, tengo que ingresar mi nombre de usuario y contraseña. ¿Hay algo más que una clave SSH que deba configurar para esto?

Catherine avatar Oct 15 '11 03:10 Catherine
Aceptado

Creo que es posible que tengas la URL del repositorio de Git incorrecta.

Abra .git/configy busque la sección ["origen" remoto]. Asegúrate de estar usando el SSH:

ssh://[email protected]/username/repo.git

Puede ver la URL SSH en la página principal de su repositorio si hace clic en Clonar o descargar y elige ssh .

Y NO el httpso gituno:

https://github.com/username/repo.git
git://github.com/username/repo.git

Ahora puedes validar solo con la clave SSH en lugar del nombre de usuario y la contraseña.

Si Git se queja de eso 'origin' has already been added, abra el .configarchivo y edite la url = "..."parte posterior [remote origin]comourl = ssh://github/username/repo.git


Lo mismo ocurre con otros servicios. Asegúrese de que la dirección se vea así:protocol://something@url

Por ejemplo, .git/configpara Azure DevOps:

[remote "origin"]
    url = https://[email protected]/mystore/myproject/
    fetch = +refs/heads/*:refs/remotes/origin/*
static_rtti avatar Oct 14 '2011 21:10 static_rtti

Configurando credencial.helper

En OS X (ahora macOS), ejecute esto en Terminal :

git config --global credential.helper osxkeychain

Permite a Git usar el archivo Keychain.app para almacenar el nombre de usuario y la contraseña y recuperar la frase de contraseña de su clave SSH privada del llavero.

Para uso en Windows:

git config --global credential.helper wincred

Para uso en Linux:

git config --global credential.helper cache // If you want to cache the credentials for some time (default 15 minutes)

O

git config --global credential.helper store // if you want to store the credentials for ever (considered unsafe)

Nota: El primer método almacenará en caché las credenciales en la memoria, mientras que el segundo las almacenará en ~/.git-credentialsformato de texto sin formato.

Consulte aquí para obtener más información sobre el método Linux.
Consulte aquí para obtener más información sobre los tres.

Solución de problemas

Si el asistente de credenciales de Git está configurado correctamente, macOS guarda la frase de contraseña en el llavero. A veces, la conexión entre SSH y las frases de contraseña almacenadas en el llavero puede romperse. Ejecute ssh-add -Ko ssh-add ~/.ssh/id_rsapara agregar la clave al llavero nuevamente.

macOS v10.12 (Sierra) cambia a ssh

Para macOS v10.12 (Sierra), ssh-add -Kdebe ejecutarse después de cada reinicio. Para evitar esto, crea ~/.ssh/configcon este contenido.

Host *
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile ~/.ssh/id_rsa

De la ssh_config manpágina del 10.12.2:

UsarLlavero

En macOS, especifica si el sistema debe buscar frases de contraseña en el llavero del usuario cuando intenta utilizar una clave en particular. Cuando el usuario proporciona la frase de contraseña, esta opción también especifica si la frase de contraseña debe almacenarse en el llavero una vez que se haya verificado que es correcta. El argumento debe ser "sí" o "no". El valor predeterminado es "no".

Apple agregó la nota técnica 2449 que explica lo sucedido.

Antes de macOS Sierra, sshpresentaba un cuadro de diálogo solicitando su frase de contraseña y ofrecía la opción de almacenarla en el llavero. Esta interfaz de usuario quedó obsoleta hace algún tiempo y se eliminó.

orkoden avatar Jul 11 '2012 08:07 orkoden