Przechowuj hasło w TortoiseHg

200

Czy istnieje sposób na skonfigurowanie TortoiseHg do przechowywania mojego hasła?

Mam projekt hostowany w Google Code, do którego mam dostęp za pomocą TortoiseHg. Ilekroć chcę wprowadzić zmiany do Google Code TortoiseHg monituje mnie o nazwę użytkownika i hasło. Kod Google wymaga ode mnie używania automatycznie generowanego hasła, a za każdym razem sprawdzanie go jest dość powtarzalne.

M. Dudley
źródło

Odpowiedzi:

70

Ostrzeżenie bezpieczeństwa

Chociaż ta odpowiedź jest akceptowane jako od 2017-09-15, to nie zalecanym rozwiązaniem. Nigdy nie należy przechowywać haseł w postaci zwykłego tekstu. mercurial_keyringZamiast tego użyj rozszerzenia. Zobacz inną odpowiedź tutaj.


Możesz zmienić adres URL push na https: // nazwa użytkownika: hasł[email protected]/repo .

Wyjaśniono to w często zadawanych pytaniach dotyczących kodów Google i Mercurial .

EDYCJA: Mercurial FAQ wyjaśnia inny sposób:

W Mercurial 1.3 możesz również dodać sekcję uwierzytelniania do pliku hgrc:
[auth]
example.prefix = https://hg.example.net/
example.username = foo
example.password = bar
Nicolás
źródło
51
To zła odpowiedź! Nigdy nie należy przechowywać haseł w postaci zwykłego tekstu w ŻADNYM pliku ... !! Druga opcja (z większą liczbą głosów) przy użyciu mercurial_keyring jest jedyną właściwą rzeczą do zrobienia!
Lars Corneliussen
6
+1. Biorąc pod uwagę, że hg pushjest to nieniszczące (zawsze można hg stripniechciane zestawy zmian), wypychanie do zdalnego repozytorium nie jest wysoce uprzywilejowaną operacją. Z tego powodu przechowywanie haseł w postaci zwykłego tekstu jest często całkowicie wystarczające, o ile wiadomo o implikacjach bezpieczeństwa.
Søren Løvborg
4
Problemem nie jest to, że ktoś może nieodwracalnie uszkodzić repozytorium. Problemy są następujące: (1) ludzie ponownie używają haseł, więc gdy ktoś zdoła dostać się do tego pliku tekstowego, będzie mógł uzyskać dostęp do niepowiązanych zasobów; (2) dowolne włamania mogą zostać zakradzione w kodzie źródłowym ... (3) kod może być tajny (nie każdy program jest open source), a jego kradzież nie zawsze jest przyjemna.
maks.
6
@max 1) Może to prawda w teorii, ale OP wyraźnie stwierdził, że używa automatycznie wygenerowanego hasła 2) Kontrola wersji zatrzymuje to, możesz zobaczyć wszystkie zmiany, które zostały zarejestrowane, jak to może być problem? 3) jeśli ktoś ma dostęp do haseł w postaci zwykłego tekstu przechowywanych na twoim komputerze, ma również dostęp do twojego kodu. Hasło nie ma tu znaczenia, ponieważ mogą po prostu zrzucić kod na klucz sprzętowy.
goldenratio
4
@LarsCorneliussen To nie jest zła odpowiedź. Nie każdy przypadek użycia wymaga takiego poziomu bezpieczeństwa. Rozszerzenie breloka jest opcją, tak jak jest.
Cypher
265

Obie istniejące odpowiedzi sugerują przechowywanie nazwy użytkownika i hasła niezaszyfrowanych w postaci zwykłego tekstu , co jest trochę nie-nie.

Zamiast tego należy użyć rozszerzenia Keyring , ponieważ zostało ono specjalnie zaprojektowane do bezpiecznego zapisywania haseł uwierzytelniających. Jest już w pakiecie z TortoiseHg , więc wszystko, co musisz zrobić, to aktywować, pisząc w pliku mercurial.ini :

[extensions]
mercurial_keyring=

Będziesz także musiał powiązać swoją nazwę użytkownika z adresem URL wypychania, edytując plik .hg \ hgrc specyficzny dla repozytorium, jak w poniższym przykładzie:

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

Aby uzyskać więcej informacji na temat kojarzenia nazwy użytkownika z adresem URL, zobacz sekcję Konfiguracja repozytorium (SMTP) na stronie rozszerzenia Keyring .

Vlad Iliescu
źródło
2
Właśnie wypróbowałem to rozwiązanie i działało świetnie z Windows 7. Bardzo fajnie! Dzięki!
mateuscb
działa dobrze dla mnie - ale myślę, że trzeba także zawierać nazwę użytkownika, albo na podstawie [auth] pozycją, lub zmodyfikować ścieżkę do repozytorium, takich jak nazwa użytkownika @ host (jak w linku powyżej) Brelok
Tom Carver
1
Dobra odpowiedź, zdecydowanie droga.
vobject
Co powiesz na zapisanie nazwy użytkownika i hasła, jeśli korzystasz z serwera proxy?
Seth
3
Prawidłowym sposobem byłoby użycie sekcji auth do skonfigurowania nazwy użytkownika. Nie powinieneś mieć informacji uwierzytelniających na ścieżce repo, np.[auth] \n bitbucket.org.prefix = bitbucket.org \n bitbucket.org.username = schlamar
schlamar
150

Trzy kroki, obejrzyj zrzut ekranu . Uwaga: Przechowuje twoje hasło w postaci zwykłego tekstu.

wprowadź opis zdjęcia tutaj

bruha
źródło
37
wygląda na to, że przechowuje również hasło w postaci zwykłego tekstu - jeśli masz włączone rozszerzenie kluczy, pole hasła staje się wyłączone
Vlad Iliescu,
5
Działa tylko, jeśli używasz protokołu https, przy ustawieniu http kłódka znika.
Despertar,
Zaakceptowane starsze odpowiedzi są do kitu, to powinno mieć zielonego niezręcznego!
William T. Mallard,
2

Po prostu zmodyfikuj hgrcplik w .hgkatalogu lokalnego repozytorium, aby wyglądał następująco:

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

gdzie nazwa to login Google Code bez bitu gmail / googlemail, np. „fredb” (nie [email protected]), hasło to hasło wygenerowane przez Google, a yourproj to nazwa projektu GC. Więc coś takiego:

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

źródło
11
Nigdy nie przechowuj haseł w postaci zwykłego tekstu. NIGDY! Użyj mercurial_keyring - TortoiseHG, a następnie prosi o hasło tylko raz.
Lars Corneliussen
1
Nigdy nie mów nigdy :) Tak, klucz SSH jest lepszy niż brelok, brelok jest lepszy niż zwykły tekst, ale tak naprawdę są różne sytuacje. PS głosował zarówno na odpowiedź „brelok”, jak i na tę.
Alex Shesterov,
0

Działa to dla mnie przy użyciu SSH. Znam hasło w postaci tekstu, ale to nie jest problem w tym projekcie. Musisz zmienić myUser i MyOPas dla swoich poświadczeń i ścieżki do: TortoisePlink.exe. Edytuj plik mercurial.ini

[reviewboard]
password = myPass
[ui]
username = myUser
ssh = "C:\Program Files\TortoiseHg\lib\TortoisePlink.exe" -l myUser -pw  myPass
Marcel Fernandez
źródło
0

Jeśli chcesz przechowywać hasło w mercurial.ini i nie działa ono już po aktualizacji do TortoiseHg 4.9 lub wyższej, możliwym rozwiązaniem jest dodanie portu do prefiksu:

[auth]
tax.prefix = http://server:8080
tax.username = cerveser
tax.password = mypassword
Cerveser
źródło