Jak zapisać nazwę użytkownika i hasło za pomocą Mercurial?

Użyłem Mercurial w osobistym projekcie i wpisywałem swoją nazwę użytkownika i hasło za każdym razem, gdy chcę wypchnąć coś na serwer.

Próbowałem dodać następujący plik .hgrc w moim katalogu domowym, ale wydaje się, że jest całkowicie ignorowany.

[ui]
username = MY_USER_NAME
password = MY_PASSWORD

Jak to zrobić w odpowiedni sposób?

Author: ЯegDwight, 2010-04-06

8 answers

Możesz utworzyć sekcję auth w pliku .hgrc lub Mercurial.ini w następujący sposób:

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

Część 'bb' jest arbitralnym identyfikatorem i służy do dopasowania prefiksu z nazwą użytkownika i hasłem-przydatne do zarządzania różnymi kombinacjami nazwy użytkownika/hasła z różnymi witrynami (prefiksem)

Możesz również podać tylko nazwę użytkownika, wtedy będziesz musiał wpisać hasło po naciśnięciu.

Po Więcej szczegółów zobacz: http://hgtip.com/tips/advanced/2009-10-01-configuring-user-auth-https/

Polecam również rzucić okiem na rozszerzenie breloka . Ponieważ przechowuje hasło w pierścieniu kluczy systemu zamiast zwykłego pliku tekstowego, jest bezpieczniejsze. Jest on dołączony do TortoiseHg w systemie Windows, a obecnie trwa dyskusja na temat dystrybucji go jako dołączonego rozszerzenia na wszystkich platformach.

 314
Author: Laurens Holst,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-03 15:03:44

Są trzy sposoby, aby to zrobić: użyj .plik hgrc, użyj ssh lub użyj rozszerzenia keyring


1. Niepewny sposób-Zaktualizuj swój~/.plik hgrc

Format, który działa dla mnie (w moim~/.plik hgrc) jest to

[ui]
username=Chris McCauley <[email protected]>

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


Możesz skonfigurować dowolną liczbę repo, dodając kolejne trylety prefiksu, nazwy użytkownika, hasła przez dodanie unikalnego znacznika.

To działa tylko w Mercurial 1.3 i oczywiście twoja nazwa użytkownika i hasło są w zwykłym tekście - niedobrze.


2. Bezpieczny sposób-użyj SSH, aby uniknąć używania haseł]}

Mercurial w pełni obsługuje SSH, dzięki czemu możemy skorzystać z możliwości SSH logowania się na serwer bez hasła - wykonujesz jednorazową konfigurację, aby dostarczyć samodzielnie wygenerowany certyfikat. Jest to zdecydowanie najbezpieczniejszy sposób, aby zrobić to, co chcesz.


Więcej informacji na temat konfiguracji logowania bez hasła znajdziesz tutaj


3. Brelok Rozszerzenie

Jeśli chcesz mieć bezpieczną opcję, ale nie znasz SSH, dlaczego nie spróbować?

Od docs ...

Rozszerzenie wyświetla monit o hasło HTTP przy pierwszym pull/push do / Z podanego zdalnego repozytorium (tak jak to się robi domyślnie), ale zapisuje hasło (keyed przez kombinację nazwy użytkownika i zdalnego adres URL repozytorium) w bazie haseł. Przy następnym uruchomieniu sprawdza dla nazwy użytkownika w .hg/hgrc, następnie dla odpowiedniego hasła w bazy haseł i używa tych danych uwierzytelniających, jeśli zostaną znalezione.

Więcej szczegółowych informacji znajdziesz tutaj

 164
Author: Chris McCauley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-04 00:17:33

Nikt nie wspomniał o przedłużeniu breloka. Zapisuje nazwę użytkownika i hasło do systemowego breloka, który jest o wiele bezpieczniejszy niż przechowywanie haseł w statycznym pliku, jak wspomniano powyżej. Wykonaj poniższe kroki, a powinieneś być gotowy. Miałem to i działa na Ubuntu w około 2 minuty.

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

 62
Author: user570626,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-10 00:29:54

Prosty hack polega na dodaniu nazwy użytkownika i hasła do URL push w pliku .hg/hgrc projektu:

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

(zauważ, że w ten sposób zapisujesz hasło w postaci zwykłego tekstu)

Jeśli pracujesz nad kilkoma projektami w tej samej domenie, możesz dodać przepisać w pliku ~/.hgrc, aby uniknąć powtarzania tego dla wszystkich projektów:

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

Ponownie, ponieważ hasło jest zapisane w zwykłym tekście, Zwykle przechowuję tylko moją nazwę użytkownika.

Jeśli pracujesz pod Gnome, wyjaśniam jak zintegrować Mercurial i Gnome Keyring tutaj:

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

 28
Author: Roberto Aloi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-06 11:39:27

Nikt powyżej nie wyjaśnił / nie wyjaśnił warunków początkującemu użytkownikowi. Mylą się przez terminy

.hg / hgrc -- ten plik jest używany do repozytorium, w lokalizacji lokalnej / workspace /w repozytorium.folder hg.

~/.hgrc -- ten plik jest inny niż poniższy. ten plik znajduje się w katalogu ~ lub home.

Myremote.xxxx=..... bb.xxxx=......

Jest to jedna z linii pod [auth] section / directive, przy użyciu mercurial keyring extension. Upewnij się, że nazwa serwera, który tam umieściłeś, pasuje do tego, czego używasz podczas robienia "hg clone", w przeciwnym razie Keyring powie, użytkownik nie został znaleziony. bb lub myremote w linii poniżej, są "alias name", które należy podać podczas wykonywania " hg clone http:/.../../repo1 BB lub myremote " w przeciwnym razie to nie zadziała lub musisz się upewnić, że Twoje lokalne repozytorium jest .plik hg / hgrc zawiera ten sam alias, czyli (co podałeś robiąc klon hg .. jako ostatni parametr).

PS poniższe linki dla jasnych szczegółów, sorry za szybko napisane gramatyka.

Ex: If inside ~/.hgrc (katalog domowy użytkownika w systemie Linux/Unix) lub mercurial.ini w systemie Windows w katalogu domowym użytkownika, zawiera następującą linię I jeśli zrobisz

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

, wtedy nigdy nie zostaniesz poproszony o poświadczenia użytkownika więcej niż raz na link repo http. W ~/.hgrc pod [extensions] wiersz dla "mercurial_keyring =" lub " hgext.mercurial_keyring = /path/to/your/mercurial_keyring.py".. jedna z tych linii powinna tam być.

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

I ' m trying to dowiedz się, jak ustawić właściwość PREFIX, aby użytkownik mógł klonować lub wykonywać dowolne operacje Hg bez monitów o nazwę użytkownika/hasło i bez martwienia się o to, co wspomniał w http://..../... dla nazwy serwera podczas korzystania z HG repo link. Może to być adres IP, nazwa serwera lub FQDN serwera

 22
Author: Arun Sangal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-07 17:25:51

Instalacja Mercurial_keyring na Mac OSX przy użyciu MacPorts:

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

Dodaj następujący tekst do~/.hgrc:

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

[extensions]
mercurial_keyring =
 2
Author: ftvs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-21 09:38:41

Jeśli używasz TortoiseHg, musisz wykonać te trzy kroki pokazane na załączonym zrzucie ekranu, dodałoby to Twoje dane uwierzytelniające do konkretnego repozytorium, z którym pracujesz.

Tutaj wpisz opis obrazka

Aby dodać ustawienia globalne, możesz uzyskać dostęp do pliku C:\users\user.name\mercurial.ini i dodać sekcję

[auth]
bb.prefix=https://bitbucket.org/zambezia/packagemanager
bb.username = $username
bb.password = $password
Mam nadzieję, że to pomoże.
 1
Author: A.B.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-19 06:50:05

Chociaż może to lub nie działać w twojej sytuacji, uważam, że przydatne jest wygenerowanie klucza publicznego / prywatnego za pomocą konkursu Putty.

Jeśli pracujesz również z bitbucket (. org) powinno dać Ci możliwość dostarczenia klucza publicznego do Twojego konta użytkownika, a następnie polecenia, które docierają do repozytorium, zostaną automatycznie zabezpieczone.

Jeśli Konkurs nie uruchomi się po ponownym uruchomieniu, możesz dodać skrót do Konkursu do okna "menu Start", a skrót może trzeba mieć "właściwości" wypełnione lokalizacji prywatnych (.ppk) plik.

W tym miejscu Mercurial i Twoje lokalne repozytoria będą musiały być skonfigurowane do push / pull przy użyciu formatu SSH.

Oto kilka szczegółowych instrukcji na stronie firmy Atlassian dla Systemów Windows lub Mac/Linux.

Nie musisz mi wierzyć na słowo i nie ma wątpliwości, że są na to inne sposoby. Być może te kroki opisane tutaj są bardziej dla Ciebie:

  1. Start PuttyGen od Start - > PuTTY - > PuttyGen
  2. wygeneruj nowy klucz i zapisz go jako .plik ppk bez hasła
  3. użyj Putty, aby zalogować się na serwer, z którym chcesz się połączyć
  4. dołącza tekst klucza publicznego z PuttyGen do tekstu~/.ssh / authorized_keys
  5. Utwórz skrót do swojego .plik ppk od Start - > Putty do Start - > Startup
  6. Wybierz .Skrót ppk z menu startowego (stanie się to automatycznie przy każdym startup)
  7. widzisz ikonę konkursu w pasku zadań? Kliknij prawym przyciskiem myszy i wybierz "nowa sesja"
  8. wprowadź nazwę użytkownika@hostname w polu "Nazwa hosta"
  9. zalogujesz się automatycznie.
 0
Author: veeTrain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-24 11:52:39