Almacenar contraseña en TortoiseHg

200

¿Hay alguna forma de configurar TortoiseHg para almacenar mi contraseña?

Tengo un proyecto alojado en Google Code al que accedo usando TortoiseHg. Cada vez que quiero enviar cambios a Google Code, TortoiseHg me solicita un nombre de usuario y contraseña. Google Code requiere que use una contraseña generada automáticamente, y es bastante repetitivo buscarla cada vez.

M. Dudley
fuente

Respuestas:

70

Advertencia de seguridad

Aunque esta respuesta se acepta como del 15/09/2017, es no una solución recomendada. Nunca debe almacenar sus contraseñas en texto plano. Use la mercurial_keyringextensión en su lugar. Ver otra respuesta aquí.


Puede cambiar su URL de inserción a https: // nombre de usuario: contraseñ[email protected]/repo .

Esto se explica en las preguntas frecuentes de Google Code y Mercurial .

EDITAR: Mercurial FAQ explica otra forma de hacerlo:

Con Mercurial 1.3 también puede agregar una sección de autenticación a su archivo hgrc:
[auth]
example.prefix = https://hg.example.net/
ejemplo.nombredeusuario = foo
ejemplo.contraseña = barra
Nicolás
fuente
51
Esta es una mala respuesta! ¡Nunca debe almacenar contraseñas de texto sin formato en CUALQUIER archivo ... !! ¡La otra opción (con más votos) usando mercurial_keyring es lo único correcto!
Lars Corneliussen
66
+1. Teniendo en cuenta que hg pushno es destructivo (siempre se pueden hg stripcambiar conjuntos no deseados), empujar a un repositorio remoto no es una operación altamente privilegiada. Por esa razón, el almacenamiento de contraseñas en texto sin formato suele ser perfectamente suficiente, siempre y cuando uno sea consciente de las implicaciones de seguridad.
Søren Løvborg
44
El problema no es que alguien pueda corromper irremediablemente el repositorio. Los problemas son: (1) las personas reutilizan las contraseñas, por lo que una vez que alguien logre acceder a este archivo de texto, podrán acceder a recursos no relacionados; (2) los trucos arbitrarios pueden ser infiltrados en el código fuente ... (3) el código puede ser secreto (no todo el desarrollo es de código abierto), y robarlo no siempre es divertido.
max
66
@max 1) Tal vez sea cierto en teoría, pero OP declaró específicamente que está usando una contraseña generada automáticamente 2) el control de versión detiene esto, puede ver todos los cambios que se registraron, ¿cómo podría ser un problema? 3) si alguien tiene acceso a las contraseñas de texto sin formato almacenadas en su computadora, también tienen acceso a su código. La contraseña no tiene sentido aquí porque simplemente pueden volcar su código en un dongle.
goldenratio
44
@LarsCorneliussen Esta no es una mala respuesta. No todos los casos de uso requieren ese nivel de seguridad. La extensión del llavero es una opción, tal como es.
Cypher
265

Ambas respuestas existentes sugieren almacenar su nombre de usuario y contraseña sin cifrar en texto plano , lo cual es un poco un no-no.

En su lugar, debe usar la extensión Keyring , ya que se ha diseñado específicamente para guardar de forma segura las contraseñas de autenticación. Ya viene incluido con TortoiseHg , por lo que todo lo que tiene que hacer es activarlo escribiendo lo siguiente en su archivo mercurial.ini :

[extensions]
mercurial_keyring=

También deberá asociar su nombre de usuario con la url de inserción editando su archivo .hg \ hgrc específico del repositorio como en el siguiente ejemplo:

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

Para obtener más detalles sobre cómo asociar su nombre de usuario con la url, consulte la sección Configuración de repositorio (SMTP) de la página de extensión de llavero .

Vlad Iliescu
fuente
2
Acabo de probar esta solución y funcionó muy bien con Windows 7. ¡Muy bien! ¡Gracias!
mateuscb
funciona bien para mí, pero creo que también debe incluir un nombre de usuario, ya sea bajo un encabezado [auth], o modificar la ruta al repositorio como nombre de usuario @ host (según el enlace de Llavero anterior)
Tom Carver
1
Buena respuesta, definitivamente el camino a seguir.
vobject
¿Qué hay de guardar el nombre de usuario y la contraseña si está detrás de un proxy web?
Septiembre
3
La forma correcta sería usar la sección de autenticación para configurar el nombre de usuario. No debe tener información de autenticación en su ruta de repositorio, por ejemplo[auth] \n bitbucket.org.prefix = bitbucket.org \n bitbucket.org.username = schlamar
schlamar
150

Tres pasos, mira la captura de pantalla . Nota: Esto almacena su contraseña en texto sin formato.

ingrese la descripción de la imagen aquí

bruha
fuente
37
parece que esto también almacena la contraseña en texto sin formato: si tiene habilitada la extensión de llavero, el campo de contraseña se deshabilita
Vlad Iliescu
55
Solo funciona si está utilizando el protocolo https, cuando se configura en http, el candado desaparece.
Despertar el
¡Las respuestas heredadas aceptadas apestan, esto debería tener el verde descarado!
William T. Mallard
2

Simplemente modifique el hgrcarchivo en el .hgdirectorio de su repositorio local para que se vea así:

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

donde nombre es su inicio de sesión de Google Code sin el bit de gmail / googlemail, por ejemplo, 'fredb' (no [email protected]), contraseña es la contraseña generada por Google y yourproj es el nombre de su proyecto de GC. Entonces algo como:

default = https://fred:[email protected]/hg/

fuente
11
Nunca almacene contraseñas en texto plano. ¡NUNCA! Use mercurial_keyring: TortoiseHG solo solicita la contraseña una vez.
Lars Corneliussen
1
Nunca digas nunca :) Sí, la clave SSH es preferible a Keyring, Keyring es preferible a texto plano, pero en realidad hay diferentes situaciones. PS votó tanto por la respuesta "llavero" como por esta.
Alex Shesterov
0

Esto funciona para mí usando SSH. Sé que la contraseña está en texto plano, pero esto no es un problema en este proyecto. Debe cambiar myUser y MyOPas para sus credenciales y la ruta a: TortoisePlink.exe. Edite el mercurial.ini

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

Si desea almacenar la contraseña en mercurial.ini y ya no funciona después de actualizar a TortoiseHg 4.9 o superior, una posible solución es agregar el puerto al prefijo:

[auth]
tax.prefix = http://server:8080
tax.username = cerveser
tax.password = mypassword
Cerveser
fuente