276 votes

Comment enregistrer le nom d’utilisateur et mot de passe avec Mercurial ?

J’ai utilisé Mercurial dans un projet personnel, et j’ai été taper mon login et mon mot de passe chaque fois que je veux pousser quelque chose sur le serveur.

J’ai essayé d’ajouter ce qui suit à la `` fichier dans mon répertoire, mais il semble être complètement ignoré.

Comment faire le bon sens ?

334voto

Laurens Holst Points 6779

Vous pouvez faire un auth section .hgrc ou Mercurial.ini le fichier, comme ceci:

[auth]
bb.prefix = https://bitbucket.org/foo/
bb.username = foo
bb.password = foo_passwd

Le " bb " est partie d'un identifiant arbitraire et est utilisée pour la correspondance de préfixe de nom d'utilisateur et mot de passe.

Vous pouvez également spécifier le nom d'utilisateur, puis vous n'aurez plus qu'à taper votre mot de passe lorsque vous appuyez sur.

Pour plus de détails, voir: http://hgtip.com/tips/advanced/2009-10-01-configuring-user-auth-https/

Je vous recommande aussi de prendre un coup d'oeil à l' extension de porte-clés. Car il stocke le mot de passe dans votre système de porte-clés au lieu d'un fichier de texte brut, c'est plus sécurisé. Il est livré avec de TortoiseHg sur Windows, et il n'y a actuellement une discussion sur la distribution comme un groupés extension sur toutes les plateformes.

170voto

Chris McCauley Points 9764

Il y a trois façons de le faire: utiliser l' .hgrc fichier, utilisez la commande ssh ou utiliser le trousseau de clés de l'extension


1. La précarité du moyen - mise à jour de votre ~/.hgrc fichier

Le format qui fonctionne pour moi (dans mon ~/.hgrc fichier) est-ce

[ui]
username=Chris McCauley <chris.mccauley@mydomain.com>

[auth]
repo.prefix = https://server/repo_path
repo.username = username
repo.password = password


Vous pouvez configurer autant de repos que vous le souhaitez en ajoutant plus de triplets de préfixe,le nom d'utilisateur, mot de passe en ajoutant une étiquette unique.

Cela ne fonctionne que dans Mercurial 1.3 et bien évidemment votre nom d'utilisateur et le mot de passe en texte clair - pas bon.


2. Le moyen sécurisé - Utiliser SSH pour ÉVITER d'utiliser des mots de passe

Mercurial prend entièrement en charge SSH afin que nous puissions profiter de SSH de la possibilité de se connecter à un serveur sans mot de passe - vous faire une fois la configuration de fournir un certificat auto-généré. C'est de loin le moyen le plus sûr de faire ce que vous voulez.


Vous pouvez trouver plus d'informations sur la configuration sans mot de passe connectez-vous ici


3. Le trousseau de clés de l'Extension

Si vous voulez une option sécuritaire, mais qui ne sont pas familiers avec SSH, pourquoi ne pas essayer?

À partir de la documentation ...

L'extension invite à entrer le mot de passe HTTP sur le premier pull/push vers/à partir de dépôt distant (comme c'est fait par défaut), mais enregistre le mot de passe (manipulés par la combinaison de nom d'utilisateur et à distance url dans le référentiel) dans le mot de passe de la base de données. Sur la prochaine course, il vérifie pour le nom d'utilisateur .hg/hgrc, puis pour le mot de passe approprié dans le mot de passe de base de données, et utilise ces informations d'identification, le cas échéant.

Il y a des informations plus détaillées ici

65voto

user570626 Points 521

Personne ne mentionne l’extension keyring. Elle sauvera l’username et le mot de passe dans le trousseau de clés de système, qui est beaucoup plus sûr que de stocker vos mots de passe dans un fichier statique, comme mentionné ci-dessus. Suivez les étapes ci-dessous et vous devriez être bon d’aller. J’ai eu cette place et fonctionne sur Ubuntu en 2 minutes environ.

http://mercurial.Selenic.com/wiki/KeyringExtension

30voto

Roberto Aloi Points 13132

Un simple hack est pour ajouter un nom d'utilisateur et mot de passe pour le pousser url dans votre projet .hg/hgrc le fichier:

[paths]
default = http://username:password@mydomain.com/myproject

(Notez que dans cette façon, vous stocker le mot de passe en texte brut)

Si vous travaillez sur plusieurs projets dans le cadre du même domaine, vous pouvez ajouter une réécriture de la règle dans votre ~/.hgrc le fichier, afin d'éviter de répéter ce pour l'ensemble des projets:

[rewrite]
http.//mydomain.com = http://username:password@mydomain.com

Encore une fois, puisque le mot de passe est stocké en texte brut, j'ai l'habitude de stocker un peu de mon nom d'utilisateur.

Si vous travaillez sous Gnome, j'explique comment intégrer Mercurial et le Gnome Keyring ici:

http://aloiroberto.wordpress.com/2009/09/16/mercurial-gnome-keyring-integration/

23voto

Arun Sangal Points 751

PERSONNE ne l'a expliqué/a précisé les conditions pour un utilisateur novice. Ils deviennent confus par les termes

.hg/hgrc -- son fichier est utilisé pour le Dépôt, au niveau local, emplacement de l'espace de travail / dans le référentiel proprement dit .hg dossier.

~/.hgrc -- ce fichier est différent de ci-dessous. ce fichier se trouve dans ~ ou le répertoire de base.

myremote.xxxx=..... bb.xxxx=......

C'est l'une des lignes en vertu de la section [auth]/directive, tout en utilisant mercurial keyring extension. Assurez-vous que le nom du serveur de vous y mettre, correspond à ce que vous utilisez tout en faisant "hg clone", sinon, trousseau de clés dire, l'utilisateur n'est pas trouvé. bb ou myremote dans la ligne ci-dessous, sont des "alias" que vous DEVEZ donner tout en faisant "hg clone http:/.../../repo1 bb ou myremote" dans le cas contraire, il l'habitude de travailler ou vous devez vous assurer que votre dépôt local .hg/hgrc fichier contient-même alias, c'est à dire (ce que vous avez donné tout en faisant hg clone .. comme dernier paramètre).

PS les liens ci-dessous pour des détails précis, désolé pour rapidement écrite de grammaire.

http://stackoverflow.com/questions/14267873/mercurial-hg-no-changes-found-cant-hg-push-out/14269997#14269997
http://www.linuxquestions.org/questions/showthread.php?p=4867412#post4867412
http://stackoverflow.com/questions/12503421/hg-push-error-and-username-not-specified-in-hg-hgrc-keyring-will-not-be-used/14270602#14270602
http://stackoverflow.com/questions/12468634/opensuse-apache-windows-ldap-group-user-authentication-mercurial/14270648#14270648

ex: Si à l'intérieur de ~/.hgrc (répertoire home de l'utilisateur de Linux/Unix) ou mercurial.ini dans Windows au répertoire home de l'utilisateur, contient, à la ligne suivante et si vous ne

`"hg clone http://.../.../reponame myremote"`

, alors vous ne serez jamais invité pour les informations d'identification utilisateur plus d'une fois par http pensions de lien. Dans ~/.hgrc sous [extensions] une ligne pour "mercurial_keyring =" ou "hgext.mercurial_keyring = /path/to/your/mercurial_keyring.py" .. l'un de ces lignes devrait être là.

[auth]
myremote.schemes = http https
myremote.prefix = tshusncdurvm99/hg
myremote.username = c123456

J'essaie de trouver comment configurer le PRÉFIXE de la propriété, de sorte que l'utilisateur peut cloner ou d'effectuer toute Hg opérations sans nom d'utilisateur/mot de passe invites et sans se soucier de ce qu'il a dit, dans le http://..../... pour servername lors de l'utilisation du Hg des pensions de lien. Il peut être une adresse IP, le nom du serveur ou du serveur de nom de domaine complet

Prograide.com

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.

Powered by:

X