Git push requiere nombre de usuario y contraseña

1437

Cloné un repositorio de Git desde mi cuenta de GitHub a mi PC.

Quiero trabajar tanto con mi PC como con mi computadora portátil, pero con una cuenta de GitHub.

Cuando trato de presionar o extraer de GitHub usando mi PC, se requiere un nombre de usuario y contraseña, ¡pero no cuando estoy usando la computadora portátil!

No quiero escribir mi nombre de usuario y contraseña cada vez que interactúo  origin. ¿Que me estoy perdiendo aqui?

Mola mucho
fuente
1
Si pero que debo hacer? He generado el keygen, ¿qué más?
TooCooL
1
Debe registrar la clave pública con su cuenta de Github ( github.com/account/ssh ) y configurar su cliente SSH para usar el nombre de usuario correcto.
jwodder
1
He hecho todo eso, ¡pero aún así requiere nombre de usuario y contraseña! ¿Es posible usar una cuenta con dos PC?
TooCooL
1
Esta pregunta cubre todas sus opciones para esto bastante bien: stackoverflow.com/questions/5343068/…
ford
2
Ya no es necesario cambiar a ssh. También es posible con HTTPS. Mira mi respuesta.
Varun Achar

Respuestas:

1961

Una causa común es la clonación utilizando el valor predeterminado (HTTPS) en lugar de SSH. Puede corregir esto yendo a su repositorio, haciendo clic en "Clonar o descargar", luego haciendo clic en el botón "Usar SSH" sobre el campo URL y actualizando la URL de su control remoto de origen de esta manera:

git remote set-url origin [email protected]:username/repo.git

Esto está documentado en GitHub: Cambio de URL remotas de HTTPS a SSH .

Tekkub
fuente
61
Y para encontrar la manera de cambiar la URL, vaya aquí: stackoverflow.com/a/2432799/60488 (alerón: git remote set-url origin git://new.url.here)
Johan Kool
136
Si no puede usar ssh por restricciones de seguridad (como yo), puede hacer: git remote set-url origin https://name:[email protected]/repo.git (extraído de un comentario aquí)
Bruno Berisso
134
¿Por qué la clonación con HTTPS es un error común? GitHub ahora recomienda usar HTTPS.
Dennis
8
@smftre por defecto ese es el caso, pero puede usar un ayudante para almacenar sus credenciales en caché .
Dennis
28
Solucioné el Permission denied (publickey)uso de esta guía: help.github.com/articles/generating-ssh-keys .
voltrevo
386

Autenticación permanente con repositorios Git

Ejecute el siguiente comando para habilitar el almacenamiento en caché de credenciales :

$ git config credential.helper store
$ git push https://github.com/owner/repo.git

Username for 'https://github.com': <USERNAME>
Password for 'https://[email protected]': <PASSWORD>

También debe especificar el vencimiento del almacenamiento en caché ,

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

Después de habilitar el almacenamiento en caché de credenciales, se almacenará en caché durante 7200 segundos (2 horas) .

Jay Patel
fuente
es posible que también deba cambiar su URL remota con git remote set-url origin https://[email protected]/<owner>/<repo>.git Esto también funciona con 2FA
Bron Davies
14
Esta debería ser la respuesta aceptada. Responde exactamente la pregunta.
Abraham TS
¿Se eliminará automáticamente de los archivos de ubuntu después de 7200 por motivos de seguridad?
usama
o 43.200 por 12 horas. Inicia sesión una vez al día. Eso podría ser más razonable para algunos.
Urasquirrel
Acabo de intentar esto - tengo:fatal: protocol 'https' is not supported
Joel
134

Acabo de encontrar el mismo problema, y ​​la solución más simple que encontré fue usar SSH URL en lugar de HTTPS:

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

Y no esto:

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

Ahora puede validar con solo la clave SSH en lugar de la usernamey password.

Anton Salikhmetov
fuente
1
La forma más fácil de solucionar el problema es simplemente editar la URL de origen remota. Eso es todo. Hecho. Gracias!
JOM
1
Esto funcionó para mí, pero primero necesitaba abordar esto: stackoverflow.com/questions/2643502/…
Sridhar Sarnobat
para configurar la clave SSH puede consultar help.github.com/articles/connecting-to-github-with-ssh
ksridhar
120

Además de cambiar a SSH, también puede seguir usando HTTPS, si no le importa poner su contraseña en texto claro. Ponga esto en su ~/.netrcy no le pedirá su nombre de usuario / contraseña (al menos en Linux y Mac):

machine github.com
       login <user>
       password <password>

Adición (ver el segundo comentario de VonC): en Windows el nombre del archivo es %HOME%\_netrc.

Lea también el primer comentario de VonC en caso de que desee cifrar.

Otra adición (vea el comentario del usuario 137717) que puede usar si tiene Git 1.7.10 o más reciente .

Guarde en caché su contraseña de GitHub en Git utilizando un asistente de credenciales :

Si está clonando repositorios de GitHub usando HTTPS, puede usar un asistente de credenciales para decirle a Git que recuerde su nombre de usuario y contraseña de GitHub cada vez que habla con GitHub.

Esto también funciona en Linux, Mac y Windows.

rintcius
fuente
3
Sí, funciona en Linux, pero no funciona para gitbash en Windows.
Dielson Sales
3
@dolmen Entiendo lo que quieres decir, pero si te importa poner tu contraseña en un texto claro, puedes ... encriptarla;) Ver stackoverflow.com/a/18362082/6309 . y eso es incluso compatible con la autenticación de 2 factores (2FA) de Github: stackoverflow.com/a/18607931/6309
VonC
3
@Sales funciona perfectamente desde una sesión de DOS o un git bash en Windows, siempre que llame a su archivo %HOME%\_netrc(en lugar de ~/.netrc). Consulte también stackoverflow.com/a/18362082/6309 para cifrar ese archivo.
VonC
1
Esto funciona muy bien en Linux, especialmente usando git sobre VPN.
Evan Hu
3
no necesita ponerlo en texto claro o encriptarlo. la utilidad auxiliar lo almacenará en caché por usted y tardará 30 segundos en configurarse. help.github.com/articles/caching-your-github-password-in-git/…
user137717
86

Para los no iniciados que están confundidos por las respuestas anteriores, puede hacer:

git remote -v

Que responderá con algo como

origin    https://[email protected]/yourname/yourrepo.git (fetch)
origin    https://[email protected]/yourname/yourrepo.git (push)

Luego puede ejecutar el comando que muchos otros han sugerido, pero ahora conoce su nombre y su repositorio desde arriba, por lo que puede cortar y pegar yourname/yourrepo.gitdesde arriba en:

git remote set-url origin [email protected]:yourname/yourrepo.git
Davide
fuente
1
Intenté esto Me pregunta por paraphrasecada vez. No configuré uno
samayo
¿Qué va en lugar de yourrepo?
Raphi
2
@Raphi corre git remote -vy mira lo que sale
Davide
1
Otras respuestas deben anteponer este consejo.
Bennett Brown
57

Si está utilizando SSH y su clave privada está encriptada con una frase de contraseña, aún se le pedirá que ingrese la frase de contraseña / contraseña para la clave privada cuando realice operaciones de red con Git como push,pull , y fetch.

Use ssh-agent para guardar las credenciales de contraseña / contraseña de clave privada

Si desea evitar tener que ingresar su frase de contraseña cada vez, puede usarla ssh-agentpara almacenar sus credenciales de frase de contraseña de clave privada una vez por sesión de terminal, como explico en mi respuesta a No se pudo abrir una conexión con su agente de autenticación :

$ eval `ssh-agent -s`
$ ssh-add

En un msysgit Bash de Windows, debe evaluar la salida de ssh-agent , pero no estoy seguro de si necesita hacer lo mismo en otros entornos de desarrollo y sistemas operativos.

ssh-addbusca una clave privada en su .sshcarpeta de inicio llamada id_rsa, que es el nombre predeterminado, pero puede pasar una ruta de archivo a una clave con un nombre diferente.

Matar al agente

Cuando haya terminado con su sesión de terminal, puede cerrar ssh-agentcon la bandera de matar -k:

$ ssh-agent -k

Como se explica en el ssh-agentmanual :

-k

Mata al agente actual (dado por la variable de entorno SSH_AGENT_PID).

Tiempo de espera opcional

Además, puede tomar un parámetro de tiempo de espera opcional como este:

$ ssh-add -t <timeout>

donde <timeout>es del formato <n>hpor <n>horas, <n>mpor <n>minutos, etc.

De acuerdo con el ssh-agentmanual :

-t life

Establezca un valor predeterminado para la vida útil máxima de las identidades agregadas al agente. La vida útil se puede especificar en segundos o en un formato de tiempo especificado en sshd_config (5) . Una vida útil especificada para una identidad con ssh-add (1) anula este valor. Sin esta opción, la vida útil máxima predeterminada es para siempre.

Vea esta página para más formatos de hora .

Advertencia de seguridad para usuarios de Cygwin

Los usuarios de Cygwin deben ser conscientes de un posible riesgo de seguridad al usar ssh-agent en Cygwin :

la gente debería ser consciente de los peligros potenciales de ssh-agent bajo Cygwin 1 , aunque bajo un netstat local y puertos remotos no parece que el puerto especificado en / tmp / ssh-foo sea accesible para nadie ...?

[1]: http://www.cygwin.com/ml/cygwin/2001-01/msg00063.html

Y en el enlace citado :

Sin embargo, tenga en cuenta que los sockets de dominio de Unix de Cygwin son INSEGURAMENTE FUNDAMENTALMENTE, por lo que DESCURSO uso de ssh-agent en Cygwin.

cuando ejecuta ssh-agent en Cygwin, crea un socket AF_UNIX en el /tmp/ssh-$USERNAME/directorio. En Cygwin, los sockets AF_UNIX se emulan mediante sockets AF_INET. Puede verlo fácilmente si busca en el /tmp/ssh-$USERNAME/agent-socket-*archivo a través del Bloc de notas. Verás algo como

!<socket >2080

entonces corre netstat -ay sorprende! Tienes algún programa escuchando el puerto 2080. Es ssh-agent. Cuando ssh recibe un desafío de RSA del servidor, se refiere al correspondiente /tmp/ssh-$USERNAME/agent-socket-*(en Cygwin, en nuestro caso, eso significa que abrirá la conexión localhost:2080) y le pide a ssh-agent que procese el desafío de RSA con la clave privada que tiene, y luego simplemente pasa la respuesta recibida del agente ssh al servidor.

En Unix, este escenario funciona sin problemas, porque el núcleo de Unix verifica los permisos cuando el programa intenta acceder a un socket AF_UNIX. Sin embargo, para los sockets AF_INET, las conexiones son anónimas (lea "inseguro"). Imagina que tienes el agente ssh Cygwin ejecutándose. Un pirata informático malintencionado puede escanear su caja, localizar el puerto abierto utilizado por ssh-agent, abrir una conexión a su servidor SSH, recibir el desafío de RSA de él, enviarlo a su ssh-agent a través de un puerto abierto que encontró, recibir el Respuesta de RSA, envíelo al servidor SSH y listo, él / ella inició sesión en su servidor como usted.

Peter Mortensen
fuente
Suena bien y detallado. Me encargué de https credential helper , ¡y tú te encargaste de las conexiones ssh! +1
VonC
49

Fuente: Configurar Git

El siguiente comando guardará su contraseña en la memoria durante algún tiempo (para Git 1.7.10 o posterior).

$ git config --global credential.helper cache
# Set git to use the credential memory cache

$ git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after one hour (setting is in seconds)
Sagar Rakshe
fuente
2
Prefiero la ayuda de credenciales 'netrc' ( stackoverflow.com/a/18362082/6309 ) para almacenar en caché múltiples credenciales (sin tener que recordar todas las contraseñas). Pero si está en Windows y quiere usar la memoria caché, necesita winstore ( stackoverflow.com/a/15310274/6309 )
VonC
99
Esta es la mejor respuesta hasta ahora en mi humilde opinión.
Chiel ten Brinke
35

Cuando use https para Git pull & push, solo configureremote.origin.url para su proyecto, para evitar ingresar el nombre de usuario (o contraseña) cada vez que presione.

Cómo configurar remote.origin.url :

Formato de URL:
    https: // {nombre de usuario: contraseña @} github.com/ {propietario} / {repo}

Parámetros en URL:

* nombre de usuario 
Opcional, el nombre de usuario para usar cuando sea necesario.
autenticación, si se especifica, no es necesario volver a ingresar el nombre de usuario cuando se necesita autenticación. No uses el correo electrónico; use su nombre de usuario que no tenga "@"; de lo contrario, la URL no se puede analizar correctamente, * contraseña opcional, la contraseña a usar cuando se necesita autenticación. Si se especifica, no es necesario volver a ingresar la contraseña cuando se necesita autenticación. Propina: este valor se almacena como texto sin formato, por lo que, por cuestiones de seguridad, no especifique este parámetro, * * p.ej git config remote.origin.url https: //[email protected]/eric/myproject

@Update - usando ssh

Creo que usar el sshprotocolo es una mejor solución que https, aunque el paso de configuración es un poco más complejo.

Pasos bruscos:

  • Crear claves ssh usando el comando, por ejemplo, ssh-keygenen Linux, en Windows msysgitproporciona comandos similares.
  • Mantener la clave privada en la máquina local en una ubicación adecuada, por ejemplo, ~/.ssh. Y agréguelo al agente ssh mediante el ssh-addcomando.
  • Sube la clave pública al servidor Git.
  • Cambio remote.origin.urldel repositorio de Git a sshestilo, por ejemplo,[email protected]:myaccount/myrepo.git
  • Luego, cuando tire o empuje, no hay necesidad de ingresar el nombre de usuario o la contraseña.

Consejos:

  • Si su clave ssh tiene una frase de contraseña, debe ingresarla en el primer uso de la clave después de cada reinicio de su máquina, de manera predeterminada.

@Update - Cambiar entre httpsy sshprotocolo.

Simplemente cambiar remote.origin.urlserá suficiente, o puede editar repo_home/.git/configdirectamente para cambiar el valor (por ejemplo, usar vien Linux).

Por lo general, agrego una línea para cada protocolo y comento uno de ellos usando #.

P.ej

["origen" remoto]
        url = [email protected]: myaccount / myrepo.git
        # url = https: //[email protected]/myaccount/myrepo.git
        fetch = + refs / heads / *: refs / remotes / origin / *
Eric Wang
fuente
¿Está seguro de que la URL basada en http [s] admite la expansión de nombre de usuario? El manual git-fetch(1)menciona eso solo para las URL basadas en git/ ssh.
día
@plmday sí, lo estoy usando, mi versión de git es 1.8.2.3 y 1.8.4, no estoy seguro de si una versión superior cambia al respecto.
Eric Wang
1
NB proporcionar su contraseña en la URL (incluso cuando usa HTTPS) significa que está visible para todo lo que se encuentre entre usted y su repositorio.
William
3
No, proporcionar la contraseña https://username:[email protected]/es seguro. Ver stackoverflow.com/questions/4980912/…
slowhand
1
Y esto era lo que estaba buscando (para la automatización completa)
Joshua
16

Puede guardar en caché su contraseña de GitHub en Git:

Simplemente siga las instrucciones de la documentación oficial de GitHub .

Después de seguir las instrucciones del enlace anterior, debería poder empujar / extraer hacia / desde su repositorio sin tener que escribir su nombre de usuario / contraseña cada vez.

KM Rakibul Islam
fuente
55
esta es la mejor respuesta aquí y debería ser la aceptada OMI
TheZuck
1
De acuerdo, una respuesta que cita la documentación oficial debe tener prioridad. Con mucho gusto seguí sus instrucciones y prefiero usar las convenciones estándar.
johnnieb
10

Aquí hay otra opción:

En lugar de escribir

git push origin HEAD

Podrías escribir:

git push https://user:[email protected]/path HEAD

Obviamente, con la mayoría de los shells, esto provocará que la contraseña quede en caché en el historial, así que tenlo en cuenta.

Lacho Tomov
fuente
1
En Bash, añadiendo uno o más principales espacios por lo general mantenerlo fuera de la historia. Pero no en Git Bash , sin embargo.
Peter Mortensen
Esto simplemente funcionó para mí :)
Naveen Kumar V
9

Lo que funcionó para mí fue editar .git/configy usar

[remote "origin"]
        url = https://<login>:<password>@gitlab.com(...).git

No hace falta decir que esta es una forma insegura de almacenar su contraseña, pero hay entornos / casos en los que esto puede no ser un problema.

WoJ
fuente
6

Si la clave o el .netrcarchivo SSH no funcionó para usted, entonces otra solución simple, pero menos segura, que podría funcionar para usted es git-credential-store - Ayudante para almacenar credenciales en el disco:

git config --global credential.helper store

Por defecto, las credenciales se guardarán en el archivo ~/.git-credentials. Será creado y escrito en.

Tenga en cuenta que el uso de este asistente almacenará sus contraseñas sin cifrar en el disco, protegidas solo por los permisos del sistema de archivos. Si esto puede no ser una compensación de seguridad aceptable.

rumman0786
fuente
5

Tuve el mismo problema.

Entonces cambié el .git/configarchivo de mi proyecto,

url = https://github.com/<your-user-here>/<your-repo-here>

a

url = [email protected]:<your-user-here>/<your-repo-here>

y agregó la clave pública SSH al perfil de Git que está en configuración.

Para la clave pública SSH:

cat ~/.ssh/id_rsa.pub
shrikant
fuente
1
con cat ~/.ssh/id_rsa.pubobtener la clave rsa y pegar en la configuración del portal web git.
Anupam Maurya
4

Actualización para HTTPS:

GitHub ha lanzado un nuevo programa para Windows que almacena sus credenciales cuando usa HTTPS:

Usar:

  • Descargue el programa desde aquí

  • Una vez que ejecute el programa, editará su .gitconfigarchivo. Vuelva a verificar si editó el correcto .gitconfigen caso de que tenga varios de ellos. Si no editó la correcta, agregue lo siguiente a su.gitconfig

    [credential]
        helper = !'C:\\Path\\To\\Your\\Downloaded\\File\\git-credential-winstore.exe'
    

    NOTA el salto de línea después [credential]. Es requerido.

  • Abra su cliente de línea de comando e intente git push origin masteruna vez. Si le pide una contraseña, ingrésela y listo. Contraseña guardada!

Varun Achar
fuente
Gracias Varun, encanto trabajado!
Joyy
4

Para los usuarios de Windows Git, después de ejecutar git config --global credential.helper store, si aún solicita una contraseña, será mejor que compruebes dónde está escrito el archivo de configuración, usando este comando

git config --list --show-origin

En mi caso, después de editar manualmente el archivo de configuración 'C: \ Archivos de programa \ Git \ mingw64 \ etc \ gitconfig' y agregar el siguiente texto, funcionó.

[credential]
    helper = store
Liang
fuente
3

Básicamente tienes dos opciones.

Si usa el mismo usuario en ambas máquinas, debe copiar la clave .pub a su PC, por lo que GitHub sabe que usted es el mismo usuario.

Si ha creado un nuevo archivo .pub para su PC y desea tratar las máquinas como diferentes usuarios, debe registrar el nuevo archivo .pub en el sitio web de GitHub.

Si esto todavía no funciona, puede ser porque ssh no está configurado correctamente y ese ssh no puede encontrar la ubicación de sus claves. Tratar

ssh -vv [email protected]

Para obtener más información por qué falla SSH.

ralphtheninja
fuente
3

Actualización de su archivo de configuración de Git directamente ( si no desea memorizar comandos sofisticados ):

Abra su .git/configarchivo en su editor de texto favorito. Estará en la carpeta que clonó o en el repositorio en el que realizó git init. Vaya a ese repositorio. .gites una carpeta oculta, y presionar Ctrl+ Hdebería mostrar la carpeta oculta ( ls -aen la terminal).

A continuación se muestra una muestra del .git/configarchivo. Copie y pegue estas líneas y asegúrese de actualizar esas líneas con su información de Git.

[user]
        name = Tux
        email = [email protected]
        username = happy_feet

[remote "origin"]
        url = https://github.com/happy_feet/my_code.git
        fetch = +refs/heads/*:refs/remotes/origin/*

Cambie la parte de URL con el siguiente formato para SSH:

url = [email protected]:happy_feet/my_code.git

( Los formatos anteriores no cambian con varios servidores remotos de Git como GitHub o Bitbucket. Es lo mismo si está utilizando Git para el control de versiones ):

Nota: la forma SSH de conectarse a un repositorio Git remoto requerirá que agregue su clave SSH pública a su servidor remoto Git ( como GitHub o Bitbucket. Busque claves SSH en la página de configuración ).

Para saber cómo generar sus claves SSH, consulte: Creación de claves SSH

Survesh Jones
fuente
2

Esto es lo que funcionó para mí:

git remote set-url origin https://[email protected]/username/reponame.git

Ejemplo:

git remote set-url origin https://[email protected]/jsmith/master.git
usuario5854766
fuente
Gracias, he votado tu respuesta
Mandeep Singh
2

Debes realizar dos pasos:

  1. git remote remove origin
  2. git remote add origin [email protected]:NuggetAI/nugget.git

Observe que la URL de Git es una URL SSH y no una URL HTTPS ... que puede seleccionar desde aquí:

Ingrese la descripción de la imagen aquí

sapy
fuente
2

Si ha clonado HTTPS en lugar de SSH y se enfrenta a un problema con el nombre de usuario y la contraseña en la extracción, presione y busque Puede resolver este problema simplemente para UBUNTU

Paso 1: muévase al directorio raíz

cd ~/

crear un archivo .git-credentials

Agregue este contenido a ese archivo con usted usename passwordygithosting URL

https://user:[email protected]

Luego ejecuta el comando

git config --global credential.helper store

Ahora podrá extraer y obtener todos los detalles de su repositorio sin problemas.

Akhilraj NS
fuente
0

Si está utilizando Git (por ejemplo, Git Bash) en Windows (y si no desea cambiar de HTTPS a SSH), también puede usar Git Credential Manager para Windows

Esta aplicación mantendrá el nombre de usuario y la contraseña para usted ...

boly38
fuente
0

Como muchos usuarios han dicho, solo tienes que cambiar la URL de tu repositorio Git de HTTPS a SSH.

Si no ha generado una clave SSH en su máquina, entonces tendrá que hacerlo.

Solo como información adicional, después de hacer este cambio, todavía recibía el mismo error:

Permiso denegado.

En mi caso, el problema era que estaba usando Windows Shell para ejecutar el comando ngh; Dado que este comando debería abrir un mensaje para solicitar la frase SSH y el Shell de Windows no abre este tipo de mensajes, la autenticación simplemente falló.

Entonces, solo tenía que abrir el shell Git y ejecutar el comando ngh allí, poner la frase SSH en el aviso cada vez que lo pedía y "voilà" ... ¡Funcionó bien!

Thisisalexis
fuente
0
    # create the company identity file
    ssh-keygen -t rsa -b 4096 -C "[email protected]"
    # save private key to ~/.ssh/id_rsa.corp, 
    cat ~/.ssh/id_rsa.corp.pub # copy paste this string into your corp web ui security ssh keys

    # create your private identify file
    ssh-keygen -t rsa -b 4096 -C "[email protected]"
    # save private key to ~/.ssh/id_rsa.me, note the public key ~/.ssh/id_rsa.me.pub
    cat ~/.ssh/id_rsa.me.pub # copy paste this one into your githubs, private keys

    # clone company internal repo as follows
    GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa.corp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
    git clone [email protected]:corp/project.git

    export git_msg="my commit msg with my corporate identity"
    git add --all ; git commit -m "$git_msg" --author "MeFirst MeLast <[email protected]>"
    GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa.corp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
    git push 

    # clone public repo as follows
    GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa.corp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
    git clone [email protected]:acoolprojectowner/coolproject.git

    export git_msg="my commit msg with my personal identity"
    git add --all ; git commit -m "$git_msg" --author "MeFirst MeLast <[email protected]>"
    GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa.me -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
    git push 

    # stop :: how-to use different ssh identity files
Yordan Georgiev
fuente
0

Si tienes 2FA habilitado en su cuenta de Github, su contraseña normal no funcionará para este propósito, pero puede generar un token de acceso personal y usarlo en su lugar.

Visite la página Settings-> Developer Settings-> Personal Access Tokensen GitHub ( https://github.com/settings/tokens/new ) y genere un nuevo token con todos los permisos Repo :

generar token de acceso personal de GitHub

La página mostrará el nuevo valor del token. Guarde este valor y úselo en lugar de su contraseña cuando ingrese a su repositorio en GitHub:

> git push origin develop
Username for 'https://github.com': <your username>
Password for 'https://<your username>@github.com': <your personal access token>
Adil B
fuente