Збережіть пароль у TortoiseHg


200

Чи є спосіб налаштувати TortoiseHg для зберігання мого пароля?

У мене розміщений проект із Google Code, до якого я отримую доступ за допомогою TortoiseHg. Щоразу, коли я хочу натиснути зміни на код Google, TortoiseHg запрошує мене на ім’я користувача та пароль. Google Code вимагає, щоб я використовував автоматично створений пароль, і він щоразу повторюється.

Відповіді:


70

Попередження безпеки

Хоча ця відповідь прийнята з 2017-09-15, вона не є рекомендованим рішенням. Ніколи не слід зберігати свої паролі у простому тексті. Використовуйте mercurial_keyringзамість цього розширення. Дивіться іншу відповідь тут.


Ви можете змінити свою push-адресу на https: // ім'я користувача: password@hostname.com/repo .

Це пояснюється у FAQ- кодах Google і Mercurial .

EDIT: FAQ щодо Mercurial пояснює інший спосіб зробити це:

За допомогою Mercurial 1.3 ви також можете додати розділ auth до свого файлу hgrc:
[авт]
example.prefix = https://hg.example.net/
example.username = foo
example.password = bar

51
Це погана відповідь! Ніколи не слід зберігати паролі простого тексту в будь-якому файлі ... !! Інший варіант (з більшою кількістю голосів) за допомогою mercurial_keyring - єдино правильне!
Ларс Корнеліуссен

6
+1. Вважаючи, що hg pushце не руйнує (завжди можна hg stripнебажані набори змін), натискання на віддалений сховище навряд чи є дуже привілейованою операцією. З цієї причини зберігання простого тексту паролем часто є цілком достатнім, доки людина знає про наслідки для безпеки.
Søren Løvborg

4
Проблема не в тому, що хтось може безповоротно зіпсувати сховище. Проблеми полягають у тому, що: (1) люди повторно використовують паролі, тож колись комусь вдасться потрапити до цього текстового файлу, вони зможуть отримати доступ до споріднених ресурсів; (2) до вихідного коду можуть проникнути довільні хаки ... (3) код може бути таємним (не всі розробки є відкритим кодом), а його викрадення - це не завжди цікаво.
макс

6
@max 1) Можливо, правда в теорії, але ОП спеціально заявив, що він використовує автоматично згенерований пароль 2) Контроль версій зупиняє це, ви можете побачити всі зміни, які були зареєстровані, як це може бути проблемою? 3) якщо хтось має доступ до паролів прямого тексту, що зберігаються на вашому комп'ютері, він також має доступ до вашого коду. Пароль тут безглуздий, оскільки вони можуть просто скинути ваш код на ключ.
goldenratio

4
@LarsCorneliussen Це не погана відповідь. Не кожен випадок використання вимагає такого рівня безпеки. Розширення брелока - це варіант, як і це є.
Cypher

265

Обидві існуючі відповіді пропонують зберігати ваше ім’я користувача та пароль незашифрованими у простому тексті , що є трохи ні-ні.

Натомість слід використовувати розширення Keyring , оскільки воно було спеціально розроблено для надійного збереження паролів аутентифікації. Він уже поставляється в комплекті з TortoiseHg , тому все, що вам потрібно зробити, це активувати його, записавши у файл mercurial.ini наступне :

[extensions]
mercurial_keyring=

Вам також доведеться пов’язати своє ім'я користувача з URL-адресою push, відредагувавши ваш файл сховища .hg \ hgrc, як у наведеному нижче прикладі:

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

Щоб отримати докладніші відомості про асоціацію вашого імені користувача з URL, див. Розділ Конфігурація сховища (SMTP) на сторінці розширення Keyring .


2
Я просто спробував це рішення, і він чудово працював з Windows 7. Дуже приємно! Дякую!
mateuscb

добре працює для мене - але я думаю, вам також потрібно включити ім’я користувача під заголовком [auth] або змінити шлях до сховища, як ім'я користувача @ хост (за посиланням Keyring вище)
Том Карвер,

1
Гарна відповідь, безумовно, шлях.
vobject

Що з збереженням імені користувача та пароля, якщо ви стоїте за веб-проксі?
Сет

3
Правильним способом було б використовувати розділ auth для налаштування імені користувача. У вашому репо-шляху не повинно бути відомостей про [auth] \n bitbucket.org.prefix = bitbucket.org \n bitbucket.org.username = schlamar
автентичність,

150

Три кроки, дивіться скріншот . Примітка. Це зберігає ваш пароль у простому тексті.

введіть тут опис зображення


37
схоже, це також зберігає пароль у простому тексті - якщо у вас включено розширення введення ключа, то поле пароля стає вимкнено
Влад Ілієску

5
Працює лише в тому випадку, якщо ви використовуєте протокол https, коли налаштування на http замок відключається.
Деспертар

Прийняті застарілі відповіді смокчуть, це має мати зелений чекіст!
Вільям Т. Маллард

12

Якщо ви хочете налаштувати його через TortoiseHg, доступне діалогове вікно налаштування репозиторію. Після відкриття діалогового вікна перейдіть на вкладку "Синхронізація". Ви можете додати шлях із інформацією про автентифікацію HTTPS.

http://tortoisehg.bitbucket.io/manual/2.9/settings.html#module-web.settings


2

Просто змініть hgrcфайл у .hgкаталозі вашого локального сховища, щоб він виглядав так:

[paths]
default = https://name:password@yourproj.googlecode.com/hg/

де ім'я - ваш логін Google Code без біта gmail / googlemail, наприклад, "fredb" (не fredb@gmail.com), пароль - це створений Google пароль, а вашproj - назва вашого проекту GC. Тож щось на кшталт:

default = https://fred:xyz123@fredproj.googlecode.com/hg/

11
Ніколи не зберігайте паролі в простому тексті. НІКОЛИ! Використовуйте mercurial_keyring - TortoiseHG тоді запитує пароль лише один раз.
Ларс Корнеліуссен

1
Ніколи не кажіть ніколи :) Так, ключ SSH кращий, ніж Keyring, Keyring кращий, ніж простий текст, але насправді бувають різні ситуації. PS підтримав і відповідь "keyring", і цю.
Олексій Шестеров

0

Це працює для мене SSH. Я знаю, що пароль у тексті простий, але це не проблема в цьому проекті. Ви повинні змінити myUser та MyOPas для своїх облікових даних та шляху до: TortoisePlink.exe. Редагуйте сайт mercurial.ini

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

0

Якщо ви хочете зберегти пароль у mercurial.ini, і він більше не працює після оновлення до TortoiseHg 4.9 або новішої версії, можливе рішення - додати порт до префіксу:

[auth]
tax.prefix = http://server:8080
tax.username = cerveser
tax.password = mypassword
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.