Je viens d'activer 2FA (je ne peux penser à aucune autre modification que j'ai faite) et git a demandé mon nom d'utilisateur et mon mot de passe. J'ai fourni les deux, mais ils étaient «faux». J'ai essayé de nombreuses solutions ici: Git push nécessite un nom d'utilisateur et un mot de passe, mais cela n'a pas fonctionné. En particulier, lors du passage de https à ssh, la clé ssh donne
Autorisation refusée (publickey). fatal: impossible de lire à partir du référentiel distant.
$ git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:
git config --global push.default matching
To squelch this message and adopt the new behavior now, use:
git config --global push.default simple
See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)
Username for 'https://github.com': **********
Password for 'https://[email protected]':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/mlbileschi/scala.git/'
Des conseils?
git
github
two-factor-authentication
Max Bileschi
la source
la source
Réponses:
Vous devez générer un jeton d'accès. Vous pouvez en créer un en accédant à votre page de paramètres .
Utilisez ce jeton d'accès comme mot de passe dans la ligne de commande.
la source
git pull
. Probablement un problème local, mais cela pourrait aider quelqu'un.The requested URL returned error: 403
quand j'utilise le jeton pour le mot de passe, pour un push over httpsUne solution de bout en bout prend 3 étapes.
Félicitations à Gergo Erdosi. Sa réponse est en grande partie juste, c'est juste que Github change cette page de configuration. À la fin de 2016, vous devez générer un jeton d'accès à partir de votre page de jetons d'accès personnels .
Utilisez ce jeton d'accès comme mot de passe dans la ligne de commande.
Vous pouvez conserver votre nom d'utilisateur en l'incluant dans l'URL distante de votre projet. Une des façons de le faire est de modifier votre
.git/config
pour modifier laurl
ligne dans le format suivant:url = https://[email protected]/owner/repo.git
Vous pouvez conserver votre mot de passe en l'exécutant une seule fois:
$ git config credential.helper store
et ensuite votre ou vos futurs mots de passe git seront stockés dans ~ / .git-credentials, en texte clair, en utilisant le format
https://user:[email protected]
.Le stockage des mots de passe en texte clair serait normalement considéré comme un risque de sécurité. Mais dans ce cas 2FA, les informations d'identification ne sont PAS votre vrai mot de passe, c'est une chaîne générée aléatoirement. C'est donc aussi sûr que d'utiliser
une clé privée ssh une clé privée ssh sansphrase de passe. CAVEAT: gardez à l'esprit que, si vous utilisez également un (des) autre (s) compte (s) git sans 2FA sur cette machine, ces vrais mots de passe seront également stockés en texte brut.PS: Alternativement, vous pouvez choisir d'utiliser une connexion basée sur ssh, en utilisant une clé privée ssh protégée par une phrase de passe, ce qui serait plus sûr et moins pratique, mais cela sort du cadre de cette réponse.
la source
...the credential is NOT your real password, it is a randomly generated string. So it is as secure as using ssh private key.
- ce n'est pas vrai du tout . Les clés SSH peuvent être facilement protégées par une phrase de passe prête à l'emploi. Plain~./git-credentials
- n'est pas du tout sécurisé!J'avais un problème similaire. J'ai dû modifier l'url utilisée dans la commande git pour inclure mon nom d'utilisateur.
Ensuite, quand il demande PW, utilisez le jeton d'accès que vous avez créé en suivant les instructions de la réponse de Gergo Erdosi.
la source
git remote set-url --push origin
avec la même valeur, celagit push origin master
échoue toujours.git-bash
a bien fonctionnéSous Linux, vous pouvez authentifier votre identité GitHub à l'aide d'une clé SSH.
1) Génération d'une nouvelle clé SSH ( source )
Terminal ouvert.
Collez le texte ci-dessous, en le remplaçant dans votre adresse e-mail GitHub.
Cela crée une nouvelle clé ssh, en utilisant l'e-mail fourni comme étiquette.
2) Lier la clé à votre compte GitHub
Ouvrez le terminal et copiez la clé publique générée
Devrait sortir quelque chose comme
Accédez à https://github.com/settings/keys et cliquez sur
New SSH Key
, donnez-lui un titre et copiez-collez la clé publique.3) Changer l'origine de git de
https://
enssh
Ouvrez le terminal,
cd
à l'emplacement et au type de votre référentiella source
https
est parfois utile, par exemple lorsque vous restez en amonthttps
tout en ayant votre forkssh
, afin d'éviter de pousser accidentellement vers l'amont, car voushttps
demanderez le mot de passe et vous rappellera que vous avez ciblé le mauvais repoCela a fonctionné pour moi:
Accédez à [your-git-repo] /. Git / config
Sous
[remote "origin"]
Changer laURL
clé du protocole http en git.Exemple
Si la valeur de
url
est https://github.com/ .git, remplacez-la par[email protected]:<repo-url>.git
la source
Si vous utilisez déjà des clés ssh, après avoir activé 2FA, il vous obligera à lire / écrire à distance avec SSH. Vous n'avez pas vraiment besoin d'ajouter des jetons personnels, mais continuez à utiliser votre paire de clés SSH existante.
Changez simplement votre URL distante de HTTPS à SSH:
la source
Cela a fonctionné pour moi après l'activation de 2FA sur Github:
Créez un jeton d'accès personnel: https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line .
REMARQUE: n'oubliez pas de sélectionner les autorisations appropriées pour le jeton.
Exécuter:
git clone https://github.com/username/repo.git
Nom d'utilisateur:
your_username
Mot de passe:
your_token
Lectures complémentaires: https://help.github.com/en/github/using-git/which-remote-url-should-i-use
la source
J'étais confronté à ce problème sur le dépôt existant lorsque j'ai activé 2FA (authentification à deux facteurs) pour l'un de mes dépôts privés. J'ai pu le résoudre en suivant les étapes ci-dessous sur mon terminal ubuntu 19.0: -
Une fois la clé ajoutée, accédez à votre terminal et mettez à jour l'url d'origine
git remote set-url origin [email protected]:<USERNAME>/<BRANCH-NAME>
J'espère que ça aide
la source