Enregistrer le mot de passe dans TortoiseHg


200

Existe-t-il un moyen de configurer TortoiseHg pour stocker mon mot de passe?

J'ai un projet hébergé sur Google Code auquel j'accède en utilisant TortoiseHg. Chaque fois que je souhaite effectuer des modifications dans Google Code, TortoiseHg me demande un nom d'utilisateur et un mot de passe. Google Code m'oblige à utiliser un mot de passe généré automatiquement, et il devient assez répétitif de le rechercher à chaque fois.

Réponses:


70

Avertissement de sécurité

Bien que cette réponse soit acceptée en date du 2017-09-15, ce n'est pas une solution recommandée. Vous ne devez jamais stocker vos mots de passe en texte brut. Utilisez mercurial_keyringplutôt l' extension. Voir une autre réponse ici.


Vous pouvez changer votre URL push en https: // nom d'utilisateur: password@hostname.com/repo .

Ceci est expliqué dans les FAQ de Google Code et Mercurial .

EDIT: Mercurial FAQ explique une autre façon de le faire:

Avec Mercurial 1.3, vous pouvez également ajouter une section d'authentification à votre fichier hgrc:
[auth]
example.prefix = https://hg.example.net/
example.username = foo
example.password = bar

51
C'est une mauvaise réponse! Vous ne devez jamais stocker de mots de passe en texte brut dans N'IMPORTE QUEL fichier ... !! L'autre option (avec plus de votes) en utilisant mercurial_keyring est la seule bonne chose à faire!
Lars Corneliussen

6
+1. Étant donné que cela hg pushn'est pas destructif (vous pouvez toujours hg stripmodifier les ensembles de modifications indésirables), le transfert vers un référentiel distant n'est guère une opération hautement privilégiée. Pour cette raison, le stockage de mots de passe en texte brut est souvent parfaitement suffisant, tant que l'on est conscient des implications de sécurité.
Søren Løvborg

4
Le problème n'est pas que quelqu'un puisse corrompre irrémédiablement le référentiel. Les problèmes sont les suivants: (1) les gens réutilisent les mots de passe, donc une fois que quelqu'un parviendra à accéder à ce fichier texte, il pourra accéder à des ressources indépendantes; (2) des hacks arbitraires peuvent être introduits dans le code source ... (3) le code peut être secret (tous les développements ne sont pas open source), et le faire voler n'est pas toujours amusant.
max

6
@max 1) Peut-être vrai en théorie, mais OP a spécifiquement déclaré qu'il utilise un mot de passe généré automatiquement 2) le contrôle de version arrête cela, vous pouvez voir toutes les modifications qui ont été archivées, comment cela pourrait-il être un problème? 3) si quelqu'un a accès aux mots de passe en texte brut stockés sur votre ordinateur, il a également accès à votre code. Le mot de passe n'a pas de sens ici car ils peuvent simplement vider votre code sur un dongle.
goldenratio

4
@LarsCorneliussen Ce n'est pas une mauvaise réponse. Tous les cas d'utilisation ne nécessitent pas ce niveau de sécurité. L'extension de porte-clés est une option, tout comme celle-ci.
Cypher

265

Les deux réponses existantes suggèrent de stocker votre nom d'utilisateur et votre mot de passe non cryptés en texte brut , ce qui est un peu non.

Vous devez utiliser l' extension Keyring à la place, car elle a été spécialement conçue pour enregistrer en toute sécurité les mots de passe d'authentification. Il est déjà fourni avec TortoiseHg , donc tout ce que vous avez à faire est de l'activer en écrivant ce qui suit dans votre fichier mercurial.ini :

[extensions]
mercurial_keyring=

Vous devrez également associer votre nom d'utilisateur à l'URL push en modifiant votre fichier .hg \ hgrc spécifique au référentiel comme dans l'exemple ci-dessous:

[paths]
default = https://<your_username>@bitbucket.org/tortoisehg/thg

Pour plus de détails sur l'association de votre nom d'utilisateur à l'URL, consultez la section Configuration du référentiel (SMTP) de la page d'extension de trousseau de clés .


2
Je viens d'essayer cette solution et elle fonctionnait très bien avec Windows 7. Très bien! Merci!
mateuscb

fonctionne bien pour moi - mais je pense que vous devez également inclure un nom d'utilisateur, soit sous un en-tête [auth], soit modifier le chemin vers le référentiel comme username @ host (selon le lien Porte-clés ci-dessus)
Tom Carver

1
Bonne réponse, définitivement le chemin à parcourir.
vobject

Qu'en est-il de l'enregistrement du nom d'utilisateur et du mot de passe si vous êtes derrière un proxy Web?
Seth

3
La bonne façon serait d'utiliser la section auth pour configurer le nom d'utilisateur. Vous ne devriez pas avoir d'informations d'authentification dans votre chemin de [auth] \n bitbucket.org.prefix = bitbucket.org \n bitbucket.org.username = schlamar
dépôt,

150

Trois étapes, regardez la capture d'écran . Remarque: Cela stocke votre mot de passe en texte clair.

entrez la description de l'image ici


37
il semble que cela stocke également le mot de passe en texte brut - si l'extension du trousseau de clés est activée, le champ du mot de passe est désactivé
Vlad Iliescu

5
Fonctionne uniquement si vous utilisez le protocole https, lorsque vous définissez sur http, le cadenas disparaît.
Despertar

Les réponses héritées acceptées sont nulles, cela devrait avoir le vert chekky!
William T. Mallard


2

Modifiez simplement le hgrcfichier dans le .hgrépertoire de votre référentiel local pour qu'il ressemble à ceci:

[paths]
default = https://name:password@yourproj.googlecode.com/hg/

nom est votre identifiant Google Code sans le bit gmail / googlemail, par exemple 'fredb' (pas fredb@gmail.com), mot de passe est le mot de passe généré par Google et yourproj est le nom de votre projet GC. Donc quelque chose comme:

default = https://fred:xyz123@fredproj.googlecode.com/hg/

11
Ne stockez jamais les mots de passe en texte brut. JAMAIS! Utilisez mercurial_keyring - TortoiseHG ne demande alors le mot de passe qu'une seule fois.
Lars Corneliussen

1
Ne dites jamais jamais :) Oui, la clé SSH est préférable au porte-clés, le porte-clés est préférable au texte en clair, mais il y a des situations différentes, vraiment. PS a voté à la fois la réponse "porte-clés" et celle-ci.
Alex Shesterov

0

Cela fonctionne pour moi en utilisant SSH. Je sais que le mot de passe est en texte clair, mais ce n'est pas un problème dans ce projet. Vous devez modifier myUser et MyOPas pour vos informations d'identification et le chemin d'accès à: TortoisePlink.exe. Modifier le mercurial.ini

[reviewboard]
password = myPass
[ui]
username = myUser
ssh = "C:\Program Files\TortoiseHg\lib\TortoisePlink.exe" -l myUser -pw  myPass

0

Si vous souhaitez stocker le mot de passe dans mercurial.ini et que cela ne fonctionne plus après la mise à niveau vers TortoiseHg 4.9 ou supérieur, une solution possible consiste à ajouter le port au préfixe:

[auth]
tax.prefix = http://server:8080
tax.username = cerveser
tax.password = mypassword
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.