Pour GitHub pour Windows lui-même, Paul Betts ( Personnel de GitHub ) rappelle gentiment à tous que G4W comprend déjà une aide à l'accréditation. (sur la base de CryptProtect et je suppose que le CryptProtectData
fonction )
Voir sa réponse ci-dessous .
Pour ceux qui n'utilisent pas G4W, lisez la suite.
Pour ajouter à mon réponse précédente (lors de l'envoi vers GitHub via la console/ligne de commande) :
Un fichier comme ~/.netrc
(sous Unix) ou %HOME%/_netrc
(sous Windows) peut vous aider à éviter d'entrer vos informations d'identification pour chaque git push que vous feriez sur GitHub. .
Vous pouvez stocker autant d'accréditations que vous le souhaitez dans une netrc
fichier.
(pour GitHub ou d'autres fournisseurs d'hébergement de repo)
Mais :
- vous ne voulez pas stocker votre compte principal de mot de passe GitHub
- vous ne voulez pas les avoir dans un fichier texte.
Les sections suivantes traitent de ces questions :
(3 septembre 2013)
Configurer 2FA via une application toujours par le biais d'une application, jamais par un SMS, si vous pouvez l'éviter.
La raison est que, par le biais de ce processus d'activation, vous avez accès à votre clé secrète à deux facteurs qui est utilisé pour générer l'authentification du second facteur toutes les 30 secondes :
De cette façon, vous pouvez aller à tout GAuth ( Google Authenticator ) client entrez la même clé secrète 2FA, et voyez l'écran suivant exact le même code que vous obtiendriez par SMS.
Sauf que, si vous n'avez pas de réseau téléphonique, ça marche quand même ;)
Bien sûr, le Le premier client à utiliser est GAuth sur votre téléphone Android ou votre iphone.
Cela signifie que vous n'avez pas à attendre un SMS et que vous conservez votre système 2FA sur votre téléphone.
Toutefois, le fait de disposer de votre clé secrète vous permet de ne pas être limité à un client sur votre téléphone.
Vous pouvez aller sur n'importe quel autre client, comme :
Pour tous ces clients (sur votre téléphone avec GAuth, ou avec un client de bureau ou une page web), vous aurez besoin de votre clé secrète à deux facteurs .
Si vous avez activé votre 2FA par SMS :
- vous ne connaissez pas votre clé secrète
- vous ne pouvez pas utiliser un autre client GAuth
- vous êtes limité à la réception de votre jeton par le biais de votre téléphone (si vous disposez d'un service téléphonique et/ou si vous avez votre téléphone tout court)
Note : si vous avez ajouté une clé dans votre client Gauth sur Android, sans avoir mémorisé au préalable ladite clé secrète, tout n'est pas perdu .
(mais vous avez besoin d'un téléphone rooté)
$ adb shell
# sqlite3 /data/data/com.google.android.apps.authenticator/databases/databases
sqlite> select * from accounts;
1|your@email.address|your2factorkey|0|0
sqlite> .quit
#exit
N'oubliez pas d'obtenir et de sauvegarder les codes de récupération associés (dans le menu de gauche). Account Settings
de votre compte GitHub ) :
(Voir aussi la dernière section sur où pour sauvegarder ces codes)
Cryptez votre _netrc
fichier
(voir le aide d'accréditation netrc avec git1.8.3+ : cryptage gpg)
Vous devez crypter dans ce fichier au moins ces deux informations d'identification :
machine github.com
login username
password xxxx
protocol https
machine gist.github.com
login username
password xxxx
protocol https
Vous ne gardez alors qu'un ~/.netrc.gpg
o %HOME%/_netrc.gpg
Mais, si vous activez la nouvelle authentification à deux facteurs décrite ci-dessus, ' xxxx
ne sera pas votre compte GitHub : voir la section suivante sur le "Token d'accès personnel".
Générer un jeton d'accès personnel
Vous ne serez pas en mesure de pousser avec votre mot de passe GitHub si vous avez activé 2FA.
Anonymous access to user/repo.git denied
Voici ce que vous verriez (le gpg
c'est parce que j'utilise le netrc
aide à la reconnaissance des titres ) :
C:\Users\VonC\prog\git\git>git push origin
Using GPG to open %HOME%/_netrc.gpg: [gpg2 --decrypt %HOME%/_netrc.gpg]
You need a passphrase to unlock the secret key for
user: "auser <email@email.com>"
2048-bit RSA key, ID A2EF56, created 2012-09-12 (main key ID DC43D6)
remote: Anonymous access to VonC/git.git denied. <=====
fatal: Authentication failed for 'https://VonC@github.com/VonC/git/' <=====
Alors, allez au Developer
de votre compte GitHub (sous-section Personal access tokens
), et générer un Jeton d'accès personnel :
Ce jeton ne nécessitera pas d'authentification à deux facteurs. vous pouvez l'utiliser comme mot de passe dans votre _netrc
et vous serez en mesure de pousser vers GitHub.
Mais la différence avec le mot de passe de votre compte GitHub principal est :
Vous pouvez révoquer un jeton d'accès personnel (et en générer un nouveau), tout en gardant votre mot de passe principal inchangé.
Si vous aviez crypté votre mot de passe principal de GitHub dans votre fichier ~/.netrc.gpg
vous pouvez le remplacer par votre nouveau jeton personnel :
gpg -d %HOME%\_netrc.gpg | sed "s/yourPassord/YourPersonalAccessToken/g" | gpg -e -r auser --yes -o %HOME%\_netrc.gpg
En plusieurs lignes pour plus de lisibilité :
gpg -d %HOME%\_netrc.gpg |
sed "s/yourPassord/YourPersonalAccessToken/g" |
gpg -e -r auser --yes -o %HOME%\_netrc.gpg
Cela fonctionne même sous Windows, avec l'aide de l'utilitaire unix-like GoW (Gnu sur Windows) qui comprend sed
.
Enregistrez vos informations d'identification GitHub.
Je recommande un stockage en ligne des titres de compétences comme lastpass.com
Vous devez économiser :
- Le mot de passe de votre compte GitHub
- Votre clé secrète 2FA
- Votre code de récupération 2FA
- Votre jeton personnel