Pregunta Git sigue pidiéndome contraseña


He estado usando Git por un tiempo, pero las solicitudes constantes de una contraseña están empezando a llevarme a la pared.

Estoy usando OSX y Github, y configuré Git y mis claves SSH según lo indicado por GitHub's Configurar la página de Git . También agregué la clave github SSH a mi llavero Mac OSX, como se menciona en La página de frases clave de SSH de GitHub . Mi clave pública está registrada en Git.

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


505
2017-10-14 20:24


origen


Respuestas:


Creo que es posible que tengas el URL de git repo equivocado.

Abierto .git/config y encuentre la sección [origen de "origen remoto"]. Asegúrate de estar usando el SSH uno:

ssh://git@github.com/username/repo.git

Y NO el https o git uno:

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

Ahora puede validar con sólo el SSH Key en vez de username y password.

[Editar:] Si Git se queja de eso 'origin' has already been added, abre el .config archivar y editar el url = "..." parte después [remote origin] como url = ssh://github/username/repo.git


652
2017-10-14 21:10



Configurando credential.helper

En OS X (ahora macOS) ejecuta esto en la Terminal

git config --global credential.helper osxkeychain

Permite a git usar Keychain.app para almacenar el nombre de usuario y la contraseña, y para recuperar la frase de contraseña de tu llave privada ssh del llavero.

Para el uso de Windows:

git config --global credential.helper wincred

Solución de problemas

Si el creador de credenciales git está configurado correctamente, macOS guarda la frase de contraseña en el llavero. A veces el conexión entre ssh y las frases clave almacenadas en el llavero puede romper. correr ssh-add -K o ssh-add ~/.ssh/id_rsa para agregar la llave al llavero de nuevo.

macOS 10.12 Sierra cambia a ssh

Para macOS 10.12 Sierra ssh-add -K necesita ejecutarse después de cada reinicio. Para evitar esto crea ~/.ssh/config con este contenido

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

Desde el ssh_config  man página en 10.12.2:

UseKeychain

En macOS, especifica si el sistema debe buscar frases de contraseña en el llavero del usuario cuando intente 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 correcto. El argumento debe ser 'sí' o 'no'. El valor predeterminado es 'no'.

Apple ha agregado Technote 2449 lo que explica lo que sucedió

Antes de macOS Sierra, ssh presentaría un diálogo preguntando por su contraseña y ofrecería la opción de almacenarla en el llavero. Esta interfaz de usuario fue desaprobada hace algún tiempo y se eliminó.


481
2017-07-11 08:44



Esto me sucedió cuando actualicé a macOS Sierra. Parece que el agente ssh se borró después de la actualización.

$ ssh-add -L
The agent has no identities.

Simplemente corriendo ssh-add localicé mi identidad existente, ingresé la contraseña y bueno para volver.


107
2017-09-21 12:17



Use esto: reemplace github.com con el nombre de host apropiado

git remote set-url origin git@github.com:user/repo.git

57
2018-02-22 22:48



Como han dicho otros, puede instalar un ayudante de caché de contraseñas. En su mayoría solo quería publicar el enlace para otras plataformas, y no solo para Mac. Estoy ejecutando un servidor de Linux y esto fue útil: https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux

Para Mac:

git credential-osxkeychain

Windows:

git config --global credential.helper wincred

Linux:

git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)

29
2018-02-12 20:42



Guía para git en Windows y Github usando SSH para empujar / jalar http://nathanj.github.io/gitguide/tour.html

  1. Descargar e instalar masilla
  2. Establecer la variable de entorno 'GIT_SSH' = 'ruta \ a \ plink.exe' (en la carpeta de masilla instalada) - ¡MUY IMPORTANTE!
  3. REINICIAR WINDOWS EXPLORER para que las variables Env tengan efecto (no solo puede reiniciar el símbolo del sistema)
  4. Ejecute puttygen.exe para generar una nueva clave, copie la clave PUBLIC al sitio Github
  5. Guarde esta nueva clave PRIVADA en un lugar seguro en el disco (preferiblemente no en Dropbox)
  6. Ejecute putty.exe y conecte SSH a github.co
  7. Obtenga rápidamente la carpeta de inicio ejecutando "shell: startup". 8 Haga que su clave privada se inicie con Windows a través del concurso. Cree un acceso directo en la carpeta de inicio con la sintaxis "path \ to \ pageant.exe" "path \ to \ privatekey"
  8. No es necesario que establezcamos la configuración 'puttykeyfile' dentro de .git / config de nuestros repos
  9. MUY IMPORTANTE es que se usa la "URL de clonación SSH" de Github y no Https

8
2017-10-29 15:07



También busque quién le está pidiendo la frase de contraseña. ¿Es Git o su agente de SSH?

En mi caso, cada vez que lo hice git pull me estaba preguntando:

Enter passphrase for key '/work/username/.ssh/id_rsa':

Así que supuse que era git pedir una frase de contraseña. Así que seguí buscando soluciones, solo para darme cuenta más tarde de que mi agente de SSH se había cerrado. Que se puede arreglar como dado aquí.

Este fue un error bastante tonto que hice, pero publicarlo aquí, en caso de que ayude a alguien a ahorrar algo de tiempo al ladrar el árbol equivocado, como lo hice yo.


7
2017-08-23 02:48



En windows para git 1.7.9+, ejecute el siguiente comando en el símbolo del sistema para abrir el archivo de configuración en el editor de texto:

    git config --global --edit

Luego, en el archivo agregue el siguiente bloque si no está presente o edítelo en consecuencia

    [credential "https://giturl.com"]
        username = <user id>
        helper = wincred

Guarde y cierre el archivo. Tendrá que proporcionar los crendentials solo una vez después del cambio anterior.


6
2018-04-13 01:32



git config credential.helper store

Nota: Si bien es conveniente, Git almacenará sus credenciales en texto claro en un archivo local (.git-credentials) en el directorio de su proyecto (ver a continuación el directorio "home"). Si no le gusta esto, elimine este archivo y cambie a usar la opción de caché.

Si desea que Git vuelva a pedirle credenciales cada vez que necesite conectarse al repositorio remoto, puede ejecutar este comando:

git config --unset credential.helper

Para almacenar las contraseñas en .git-credentials en su directorio% HOME% en lugar del directorio del proyecto: use la bandera --global

git config --global credential.helper store

4
2018-06-13 07:53



Use el siguiente comando para aumentar el período de tiempo de espera para que pueda volver a escribir la contraseña por un tiempo

git config --global credential.helper 'cache --timeout 3600'

Lo usé para Bitbucket y Github, funciona para ambos. Lo único que debes hacer es 3600 está en segundos, increméntelo en la extensión que desee. Lo cambié a 259200 Que es aproximadamente 30 días. De esta manera, vuelvo a ingresar mi contraseña cada 30 días más o menos.


4
2017-09-23 09:18



Me imagino que resolvió su problema, pero no veo la solución aquí que me haya ayudado, así que aquí está.

Escriba en la terminal:

echo "" > ~/.ssh/known_hosts

Eso vaciará tu known_hostsarchivo, y tendrá que agregar todos los hosts que utilizó y se haya conectado, pero resolvió el problema.


3
2017-08-01 07:18