Est-il nécessaire de stocker le jeton d'accès personnel quelque part en local sur la machine après l'avoir généré dans GitHub ?
Dans l'affirmative, y a-t-il un moyen privilégié de le stocker ?
Est-il nécessaire de stocker le jeton d'accès personnel quelque part en local sur la machine après l'avoir généré dans GitHub ?
Dans l'affirmative, y a-t-il un moyen privilégié de le stocker ?
Eh bien, vous devez sauvegarder le jeton quelque part quand vous ne voulez pas le taper à chaque fois que votre application vous le demande :-)
Une bonne solution est l'utilisation de variables d'environnement, comme déjà suggéré dans un commentaire .
Mais vous devez toujours définir la variable d'environnement quelque part.
Sous Windows (que j'utilise), vous pouvez utiliser la commande boîte de dialogue dans les paramètres du système (Je ne sais pas si d'autres systèmes d'exploitation ont quelque chose de similaire) .
Je ne le fais pas, je préfère un script dans mon projet.
Dans un projet privé, vous mai commettre cette opération dans le contrôle de la source, mais c'est une question de préférence.
Dans l'un de mes projets personnels, j'appelle également l'API GitHub, en utilisant un jeton d'accès personnel.
Il s'agit d'une application en ligne de commande et l'utilisateur final enregistrera le jeton dans un fichier de configuration. (ce qui est bien) .
Mais j'ai également besoin du jeton pour le développement, car le projet comporte des tests d'intégration où j'appelle l'API GitHub.
Et ce projet est public sur GitHub, donc je ne pouvais pas enregistrer le jeton dans le contrôle de la source.
Ce que j'ai fait, c'est ça :
environment-variables.bat
qui définit toutes les variables d'environnement requises, y compris le jeton d'accèsenvironment-variables.bat
est ignoré dans le contrôle de la source
environment-variables.bat.sample
à la place, qui contient la même chose, mais un faux jeton/mot de passe.Donc je peux juste renommer ce fichier en environment-variables.bat
remplacez le faux mot de passe par le vrai, et tout fonctionne.
Ce n'est cependant pas la solution idéale pour tous les cas.
Dans mon projet, j'ai le problème suivant : je dois utiliser davantage de jetons/mots de passe pour d'autres API à l'avenir.
Donc le nombre de jetons dans mon environment-variables.bat
sera augmentent, ce qui rend difficile pour les contributeurs potentiels l'exécution effective de tous les tests d'intégration. Et je continue je ne sais pas comment gérer ça .
En gros, j'ai fait ça sur ma machine :
https://gist.github.com/bsara/5c4d90db3016814a3d2fe38d314f9c23
Mon profil script est légèrement différent de celui décrit :
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ;
}
agent_load_env
# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi
unset env
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
6 votes
Traitez vos jetons comme des mots de passe et gardez-les secrets. Lorsque vous travaillez avec l'API, utilisez les jetons comme variables d'environnement au lieu de les coder en dur dans vos programmes. Voir le numéro 8 de la documentation officielle : aide.github.com/articles/
5 votes
Exactement, j'ai vu ce commentaire lors de la génération du jeton d'accès, mais je n'étais pas sûr de la manière dont les gens assurent leur sécurité dans la pratique.
80 votes
Cela me semble si étrange. La moitié du but des mots de passe est que (idéalement) vous les mémorisiez et que le système les hachât, de sorte qu'ils ne soient jamais stockés nulle part en texte clair. Pourtant, le système de jeton d'accès personnel de GitHub semble vous obliger à stocker le jeton en texte clair ?
0 votes
Puis-je vous demander pourquoi vous avez besoin de les stocker ? Peut-être existe-t-il des alternatives qui ne vous obligent pas à les stocker localement...
16 votes
Ils sont générés automatiquement et sont longs, il n'est donc pas possible de les mémoriser.
1 votes
Il semble y avoir une variante plus récente de celle référencée par @bytestorm :
sudo apt-get install libsecret-1-0 libsecret-1-dev
;cd /usr/share/doc/git/contrib/credential/libsecret
;sudo make
;git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
Jetez un coup d'œil ici : stackoverflow.com/a/14528360/702037817 votes
Il semble que GitHub vienne de désactiver l'authentification du mot de passe pour
git push
et impose désormais l'utilisation d'un jeton à la place. Nous devons donc maintenant stocker le jeton en texte clair ou utiliser un assistant d'authentification pour le stocker à votre place. Dans tous les cas, une personne accédant à votre ordinateur a maintenant un accès en écriture à votre dépôt. - À l'époque où je pouvais me contenter d'utiliser un mot de passe à saisir à chaque fois, ce risque de sécurité particulier n'existait pas. Et n'oublions pas que quelqu'un qui connaît mon mot de passe pourrait facilement l'utiliser pour créer ses propres jetons. En termes de sécurité, nous ne gagnons donc rien, à moins que GitHub ne décide également d'appliquer le système 2FA.