mercurial hgrc

¿Cómo guardar usuario y contraseña con Mercurial?



hgrc (8)

Hay tres formas de hacer esto: usar el archivo .hgrc, usar ssh o usar la extensión del anillo de llaves


1. El modo INSECURE - actualiza tu archivo ~ / .hgrc

El formato que funciona para mí (en mi archivo ~ / .hgrc) es este

[ui] username=Chris McCauley <[email protected]> [auth] repo.prefix = https://server/repo_path repo.username = username repo.password = password


Puede configurar tantos repositorios como desee agregando más tripletes de prefijo, nombre de usuario, contraseña al anteponer una etiqueta única.

Esto solo funciona en Mercurial 1.3 y obviamente su nombre de usuario y contraseña están en texto simple, no es bueno.


2. La forma segura - Use SSH para EVITAR usando contraseñas

Mercurial es totalmente compatible con SSH, por lo que podemos aprovechar la capacidad de SSH para iniciar sesión en un servidor sin una contraseña . Usted realiza una configuración única para proporcionar un certificado autogenerado. Esta es, con mucho, la forma más segura de hacer lo que quieres.


Puede encontrar más información sobre la configuración de inicio de sesión sin contraseña aquí


3. La extensión del llavero.

Si desea una opción segura, pero no está familiarizado con SSH, ¿por qué no intenta esto?

De los documentos ...

La extensión solicita la contraseña HTTP en el primer tirón / envío a / desde el repositorio remoto dado (como se hace de manera predeterminada), pero guarda la contraseña (ingresada por la combinación de nombre de usuario y url del repositorio remoto) en la base de datos de contraseñas. En la siguiente ejecución, verifica el nombre de usuario en .hg / hgrc, luego la contraseña adecuada en la base de datos de contraseñas y usa esas credenciales si las encuentra.

Hay información más detallada here

Usé Mercurial en un proyecto personal, y he estado escribiendo mi nombre de usuario y contraseña cada vez que quiero enviar algo al servidor.

Intenté agregar lo siguiente al archivo .hgrc en mi directorio de inicio, pero parece que se ignora por completo.

[ui] username = MY_USER_NAME password = MY_PASSWORD

¿Cómo hacer esto de la manera correcta?


Instalación de mercurial_keyring en Mac OSX utilizando MacPorts:

sudo port install py-keyring sudo port install py-mercurial_keyring

Agregue lo siguiente a ~ / .hgrc:

# Add your username if you haven''t already done so. [ui] username = [email protected] [extensions] mercurial_keyring =


NADIE anterior explicó / aclaró los términos a un usuario novato. Se confunden por los términos.

.hg / hgrc: este archivo se utiliza para Repository, en local / workspace location / en la carpeta .hg del repositorio real.

~ / .hgrc - este archivo es diferente al siguiente. este archivo reside en ~ o directorio de inicio.

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

Esta es una de las líneas en la sección / directiva [auth], mientras se usa la extensión de llavero mercurial. Asegúrese de que el nombre del servidor que coloque allí coincida con lo que usa mientras hace "hg clone"; de lo contrario, el llavero dirá que no se encontró al usuario. bb o myremote en la línea de abajo, son "alias name" que DEBE dar mientras hace "hg clone http: /.../../ repo1 bb o myremote" de lo contrario, no funcionará o tendrá que asegurarse de que su local El archivo .hg / hgrc del repositorio contiene el mismo alias, es decir (lo que dio al hacer el clon hg .. como último parámetro).

PD los siguientes enlaces para detalles claros, perdón por la gramática escrita rápidamente.

Por ejemplo, si está dentro de ~ / .hgrc (directorio de inicio del usuario en Linux / Unix) o mercurial.ini en Windows en el directorio de inicio del usuario, contiene la siguiente línea y si lo hace

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

, entonces nunca se le pedirán credenciales de usuario más de una vez por enlace de repositorio http. En ~ / .hgrc bajo [extensiones] una línea para "mercurial_keyring =" o "hgext.mercurial_keyring = /path/to/your/mercurial_keyring.py" .. una de estas líneas debe estar allí.

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

Estoy intentando descubrir cómo configurar la propiedad PREFIX para que el usuario pueda clonar o realizar cualquier operación Hg sin indicaciones de nombre de usuario / contraseña y sin preocuparse por lo que mencionó en http: // .... / ... para Nombre del servidor al utilizar el enlace de repositorio Hg. Puede ser IP, nombre de servidor o FQDN del servidor


Nadie mencionó la extensión del llavero. Guardará el nombre de usuario y la contraseña en el conjunto de claves del sistema, que es mucho más seguro que almacenar sus contraseñas en un archivo estático como se mencionó anteriormente. Realice los pasos a continuación y debe ser bueno para ir. Tuve esto funcionando en Ubuntu en aproximadamente 2 minutos.

>> sudo apt-get install python-pip >> sudo pip install keyring >> sudo pip install mercurial_keyring **Edit your .hgrc file to include the extension** [extensions] mercurial_keyring =

here


Puedes hacer una sección de autenticación en tu archivo .hgrc o Mercurial.ini , así:

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

La parte ''bb'' es un identificador arbitrario y se usa para hacer coincidir el prefijo con el nombre de usuario y la contraseña; útil para administrar diferentes combinaciones de nombre de usuario / contraseña con diferentes sitios (prefijo)

También puede especificar solo el nombre de usuario, entonces solo tendrá que escribir su contraseña cuando presione.

Para obtener más detalles, consulte: http://hgtip.com/tips/advanced/2009-10-01-configuring-user-auth-https/

También recomendaría echar un vistazo a la extensión del llavero . Debido a que almacena la contraseña en el conjunto de claves de su sistema en lugar de un archivo de texto simple, es más seguro. Se incluye con TortoiseHg en Windows, y actualmente hay una discusión acerca de su distribución como una extensión empaquetada en todas las plataformas.


Si bien puede o no funcionar en su situación, me ha resultado útil generar una clave pública / privada utilizando Putty''s Pageant.

Si también está trabajando con bitbucket (.org), debería darle la posibilidad de proporcionar una clave pública a su cuenta de usuario y luego los comandos que llegan al repositorio se protegerán automáticamente.

Si Pageant no se inicia al reiniciarlo, puede agregar un acceso directo a Pageant a su "Menú de Inicio" de Windows y es posible que el acceso directo tenga que rellenar las ''propiedades'' con la ubicación de su archivo privado (.ppk). .

Con esto en su lugar, Mercurial y sus repositorios locales deberán configurarse para empujar / tirar utilizando el formato SSH.

Aquí hay algunas instrucciones detalladas en el sitio de Atlassian para Windows o Mac / Linux.

No tienes que confiar en mi palabra y no hay duda de otras formas de hacerlo. Quizás estos pasos descritos aquí son más para ti:

  1. Inicie PuttyGen desde Inicio -> PuTTY-> PuttyGen
  2. Genere una nueva clave y guárdela como un archivo .ppk sin una frase de contraseña
  3. Use Putty para iniciar sesión en el servidor al que desea conectarse
  4. Agregue el texto de la clave pública de PuttyGen al texto de ~ / .ssh / authorized_keys
  5. Cree un acceso directo a su archivo .ppk desde Inicio -> Putty to Start -> Startup
  6. Seleccione el acceso directo .ppk en el menú Inicio (esto ocurrirá automáticamente en cada inicio)
  7. ¿Ver el icono del concurso en la bandeja del sistema? Haz clic derecho y selecciona "Nueva sesión"
  8. Ingrese username @ hostname en el campo "Nombre de host"
  9. Ahora iniciará sesión automáticamente.

Si está utilizando TortoiseHg, debe realizar estos tres pasos que se muestran en la captura de pantalla adjunta, esto agregaría sus credenciales para el repositorio específico con el que está trabajando.

Para agregar configuraciones globales, puede acceder al archivo C: / users / user.name / mercurial.ini y agregar la sección

[auth] bb.prefix=https://bitbucket.org/zambezia/packagemanager bb.username = $username bb.password = $password

Espero que esto ayude.


Un simple truco es agregar el nombre de usuario y la contraseña a la url de inserción en el archivo .hg/hgrc su proyecto:

[paths] default = http://username:[email protected]/myproject

(Tenga en cuenta que de esta manera almacena la contraseña en texto plano)

Si está trabajando en varios proyectos bajo el mismo dominio, es posible que desee agregar una regla de reescritura en su archivo ~/.hgrc , para evitar repetir esto en todos los proyectos:

[rewrite] http.//mydomain.com = http://username:[email protected]

Nuevamente, como la contraseña se almacena en texto sin formato, generalmente almaceno solo mi nombre de usuario.

Si estás trabajando con Gnome, te explico cómo integrar Mercurial y el llavero de Gnome aquí:

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