Domanda

Ho usato Mercurial in un progetto personale e ho digitato il mio nome utente e la mia password ogni volta che volevo inviare qualcosa al server.

Ho provato ad aggiungere quanto segue al file .hgrc file nella mia directory home, ma sembra essere completamente ignorato.

[ui]
username = MY_USER_NAME
password = MY_PASSWORD

Come farlo nel modo giusto?

È stato utile?

Soluzione

Puoi creare una sezione di autentica .hgrc o Mercurial.ini file, così:

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

La parte "BB" è un identificatore arbitrario e viene utilizzata per abbinare il prefisso con nome utente e password - utile per la gestione di diverse combo di nome utente/password con siti diversi (prefisso)

Puoi anche specificare il nome utente, quindi dovrai solo digitare la password quando si spinge.

Per maggiori dettagli vedi: http://hgtip.com/tips/advanced/2009-10-01-configuring-user-auth-https/

Consiglierei anche di dare un'occhiata al Estensione del chiavi. Poiché memorizza la password nel tastiera del tuo sistema anziché un file di testo semplice, è più sicuro. È in bundle con Tortoisehg su Windows e attualmente c'è una discussione sulla distribuzione come estensione in bundle su tutte le piattaforme.

Altri suggerimenti

Esistono tre modi per farlo: usa il file .hgrc, usa ssh o usa l'estensione del keyring


1. Il modo insicuro: aggiorna il tuo file ~/.hgrc

Il formato che funziona per me (nel mio file ~/.hgrc) è questo

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

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


Puoi configurare tutte le repository che desideri aggiungendo più terzine di prefisso, nome utente, password preparando un tag unico.

Questo funziona solo in Mercurial 1.3 e ovviamente il tuo nome utente e password sono in testo semplice - non è buono.


2. Il modo sicuro: utilizzare SSH per evitare l'utilizzo delle password

Mercurial supporta pienamente ssh così possiamo Approfitta della capacità di SSH di accedere a un server senza una password - Fai una configurazione una volta spenta per fornire un certificato auto-generato. Questo è di gran lunga il modo più sicuro per fare quello che vuoi.


Puoi trovare ulteriori informazioni sulla configurazione Accesso senza password qui


3. L'estensione del chiavi

Se vuoi un'opzione sicura, ma non hai familiarità con SSH, perché non provarlo?

Dai documenti ...

L'estensione richiede la password HTTP sul primo repository remoto di tiro a/da Dato (proprio come è stato fatto per impostazione predefinita), ma salva la password (chiave dalla combinazione di nome utente e URL del repository remoto) nel database della password. Nell'esecuzione successiva, controlla il nome utente in .hg/hgrc, quindi per una password adeguata nel database delle password e utilizza tali credenziali se trovate.

Ci sono informazioni più dettagliate qui

Nessuno ha menzionato l'estensione del chiavi. Salverà il nome utente e la password nel Keyring del sistema, che è molto più sicuro che archiviare le password in un file statico come menzionato sopra. Esegui i passaggi seguenti e dovresti essere a posto. L'ho avuto in funzione su Ubuntu in circa 2 minuti.

>> 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 = 

https://www.mercurial-scm.org/wiki/keyringextension

Un semplice hack è aggiungere nome utente e password all'URL push nel tuo progetto .hg/hgrc file:

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

(Nota che in questo modo memorizzi la password in testo normale)

Se stai lavorando su diversi progetti sotto lo stesso dominio, potresti voler aggiungere un riscrivere regola nel tuo ~/.hgrc file, per evitare di ripeterlo per tutti i progetti:

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

Ancora una volta, poiché la password è memorizzata in un testo semplice, di solito memorizzo solo il mio nome utente.

Se stai lavorando sotto GNOME, spiego come integrare qui Mercurial e Gnome:

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

NESSUNO sopra ha spiegato/chiarito i termini a un utente inesperto.Si confondono con i termini

.hg/hgrc: questo file viene utilizzato per il repository, nella posizione locale/dell'area di lavoro/nella cartella .hg del repository effettivo.

~/.hgrc -- questo file è diverso da quello seguente.questo file risiede nella directory ~ o home.

miotelecomando.xxxx=.....bb.xxxx=......

Questa è una delle righe nella sezione/direttiva [auth], mentre si utilizza l'estensione portachiavi mercurial.Assicurati che il nome del server che hai inserito corrisponda a quello che usi mentre esegui "hg clone", altrimenti il ​​portachiavi dirà utente non trovato.bb o myremote nella riga sottostante, sono "nomi alias" che DEVI fornire mentre esegui "hg clone http:/.../../repo1 bb o myremote" altrimenti non funzionerà o devi assicurarti che il tuo locale il file .hg/hgrc del repository contiene lo stesso alias, ovvero (quello che hai fornito durante l'esecuzione di hg clone ..come ultimo parametro).

PS i seguenti link per dettagli chiari, scusate la grammatica scritta velocemente.

ex:Se all'interno di ~/.hgrc (la directory home dell'utente in Linux/Unix) o mercurial.ini in Windows nella directory home dell'utente, contiene la riga seguente e se lo fai

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

, non ti verranno mai richieste le credenziali utente più di una volta per collegamento al repository http.In ~/.hgrc sotto [extensions] una riga per "mercurial_keyring = " o "hgext.mercurial_keyring = /path/to/your/mercurial_keyring.py" ..una di queste linee dovrebbe essere lì.

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

Sto cercando di scoprire come impostare la proprietà PREFIX in modo che l'utente possa clonare o eseguire qualsiasi operazione Hg senza richiedere nome utente/password e senza preoccuparsi di ciò che ha menzionato nel http://..../...per nomeserver durante l'utilizzo del collegamento al repository Hg.Può essere IP, nome server o FQDN del server

Mercurial_Keyring Installation su Mac OSX usando Macports:

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

Aggiungi quanto segue a ~/.hgrc:

# Add your username if you haven't already done so.
[ui]
username = email@address.com

[extensions]
mercurial_keyring =

Se stai usando Tortoisehg devi eseguire questi tre passaggi mostrati nella schermata allegata, questo aggiungerebbe le tue credenziali per il repository specifico con cui stai lavorando.

enter image description here

Per aggiungere impostazioni globali è possibile accedere al file C: Users user.name mercurial.ini e aggiungi la sezione

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

Spero che sia di aiuto.

Anche se può o meno funzionare nella tua situazione, ho trovato utile generare una chiave pubblica / privata usando il concorso di Putty.

Se stai lavorando anche con Bitbucket (.org), dovrebbe darti la possibilità di fornire una chiave pubblica al tuo account utente e quindi i comandi che raggiungono il repository saranno protetti automaticamente.

Se il concorso non si avvia per un riavvio, puoi aggiungere una scorciatoia a Pageant al tuo "menu di avvio" di Windows e il collegamento potrebbe aver bisogno di avere un "Proprietà" popolato con la posizione del tuo file privato (.PPK) .

Con questo in atto mercuriale e i repository locali dovranno essere impostati per spingere/tirare usando il formato SSH.

Ecco alcune istruzioni dettagliate su AtlassianSito per Windows o Mac/Linux.

Non devi crederci e non ci sono dubbi su altri modi per farlo. Forse questi passaggi descritto qui sono più per te:

  1. Avvia puttygen dall'inizio -> PUTTY-> Puttygen
  2. Genera una nuova chiave e salvala come file .ppk senza passphrase
  3. Usa PUTTY per accedere al server a cui si desidera connettere
  4. Aggiungi il testo della chiave pubblica da Puttygen al testo di ~/.ssh/Authorized_keys
  5. Crea un collegamento sul tuo file .PPK dall'inizio -> PUTTY ALL'ATTER -> Avvio
  6. Seleziona il collegamento .PPK dal menu di avvio (questo avverrà automaticamente ad ogni avvio)
  7. Vedi l'icona del concorso nel vassoio del sistema? Fare clic con il pulsante destro del mouse e selezionare "Nuova sessione"
  8. Immettere nome utente@hostname nel campo "Nome host"
  9. Ora accederai automaticamente.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top