Хранить пароль в TortoiseHg


200

Есть ли способ настроить TortoiseHg для хранения моего пароля?

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

Ответы:


70

Предупреждение безопасности

Хотя этот ответ принят на 2017-09-15, это не рекомендуемое решение. Вы никогда не должны хранить свои пароли в виде простого текста. mercurial_keyringВместо этого используйте расширение. Смотрите другой ответ здесь.


Вы можете изменить свой push-адрес на https: // username: password@hostname.com/repo .

Это объясняется в ЧаВо по Google Code и Mercurial .

РЕДАКТИРОВАТЬ: Mercurial FAQ объясняет еще один способ сделать это:

В Mercurial 1.3 вы также можете добавить раздел авторизации в свой файл hgrc:
[Авт]
example.prefix = https://hg.example.net/
example.username = foo
пример.пароль = бар

51
Это плохой ответ! Вы никогда не должны хранить незашифрованные пароли в ЛЮБОМ файле ... !! Другой вариант (с большим количеством голосов) с использованием mercurial_keyring - единственно правильная вещь!
Ларс Корнелиусен,

6
+1. Учитывая, что hg pushэто не разрушительно (вы всегда можете получить hg stripнежелательные наборы изменений), отправка в удаленный репозиторий вряд ли является привилегированной операцией. По этой причине хранение пароля в виде простого текста часто вполне достаточно, если известно о последствиях для безопасности.
Серен Левборг

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

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

4
@LarsCorneliussen Это неплохой ответ. Не каждый вариант использования требует такого уровня безопасности. Расширение связки ключей является опцией, так же, как это.
Cypher

265

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

Вместо этого вы должны использовать расширение Keyring , так как оно было специально разработано для безопасного сохранения паролей аутентификации. Он уже поставляется в комплекте с TortoiseHg , поэтому все, что вам нужно сделать, это активировать его, написав в файле mercurial.ini следующее :

[extensions]
mercurial_keyring=

Вы также должны будете связать свое имя пользователя с URL-адресом, отредактировав свой файл репозитория .hg \ hgrc, как в примере ниже:

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

Дополнительные сведения о том, как связать ваше имя пользователя с URL-адресом, см. В разделе « Конфигурация репозитория (SMTP) » на странице расширения набора ключей .


2
Я только что попробовал это решение, и оно отлично работало с Windows 7. Очень приятно! Спасибо!
mateuscb

хорошо работает для меня - но я думаю, что вам также нужно включить имя пользователя, либо под заголовком [auth], либо изменить путь к хранилищу, например username @ host (согласно ссылке на связку ключей выше)
Tom Carver

1
Хороший ответ, безусловно, путь.
vobject

Как насчет сохранения имени пользователя и пароля, если вы находитесь за веб-прокси?
Сет

3
Правильный способ - использовать раздел auth для настройки имени пользователя. Вы не должны иметь информацию об [auth] \n bitbucket.org.prefix = bitbucket.org \n bitbucket.org.username = schlamar
авторизации

150

Три шага, смотрите скриншот . Примечание. Этот пароль хранится в открытом виде.

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


37
похоже, это также хранит пароль в открытом тексте - если у вас включено расширение для набора ключей, то поле пароля становится недоступным
Влад Илиеску

5
Работает только если вы используете протокол https, при установке на http замок исчезает.
Despertar

Принятые устаревшие ответы отстой, это должен иметь зеленый чекки!
Уильям Т. Маллард

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/

где name - это ваша учетная запись Google Code без бита gmail / googlemail, например, «fredb» (не fredb@gmail.com), пароль - это пароль, созданный Google, а yourproj - имя вашего проекта GC. Так что-то вроде:

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

11
Никогда не храните пароли в виде простого текста. НИКОГДА! Используйте mercurial_keyring - TortoiseHG затем запрашивает пароль только один раз.
Ларс Корнелиусен,

1
Никогда не говори никогда :) Да, ключ SSH предпочтительнее, чем Keyring, Keyring предпочтительнее, чем обычный текст, но на самом деле бывают разные ситуации. PS проголосовал как за «брелок», так и за этот.
Алексей Шестеров

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.