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.

M. Dudley
la source

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: [email protected]/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
Nicolás
la source
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 .

Vlad Iliescu
la source
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

bruha
la source
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
12

Si vous souhaitez le configurer via TortoiseHg, la boîte de dialogue Paramètres du référentiel est disponible. Après avoir ouvert la boîte de dialogue, veuillez basculer vers l'onglet «Sync». Vous pouvez ajouter un chemin avec des informations d'authentification HTTPS.

http://tortoisehg.bitbucket.io/manual/2.9/settings.html#module-web.settings

kuy
la source
2

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

[paths]
default = https://name:[email protected]/hg/

nom est votre identifiant Google Code sans le bit gmail / googlemail, par exemple 'fredb' (pas [email protected]), 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:[email protected]/hg/

la source
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
Marcel Fernandez
la source
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
Cerveser
la source