Сохранить пароль в TortoiseHg

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

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


person M. Dudley    schedule 04.01.2010    source источник


Ответы (7)


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

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


Вы можете изменить свой push-URL на https://username:[email protected]/repo .

Это объясняется в Google Code и Часто задаваемые вопросы о Mercurial.

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

With Mercurial 1.3 you can also add an auth section to your hgrc file:
[auth]
example.prefix = https://hg.example.net/
example.username = foo
example.password = bar
person Nicolás    schedule 04.01.2010
comment
Это плохой ответ! Вы никогда не должны хранить пароли в виде открытого текста в ЛЮБОМ файле ... !! Другой вариант (с большим количеством голосов) с использованием mercurial_keyring - единственно правильный вариант! - person Lars Corneliussen; 27.10.2011
comment
+1. Учитывая, что hg push не является деструктивным (вы всегда можете hg strip нежелательные наборы изменений), отправка в удаленный репозиторий вряд ли является высокопривилегированной операцией. По этой причине хранения паролей в виде открытого текста часто бывает вполне достаточно, если вы осведомлены о последствиях для безопасности. - person Søren Løvborg; 28.05.2012
comment
Проблема не в том, что кто-то может безвозвратно испортить репозиторий. Проблемы следующие: (1) люди повторно используют пароли, поэтому, как только кому-то удастся добраться до этого текстового файла, они смогут получить доступ к несвязанным ресурсам; (2) в исходный код могут быть внедрены произвольные взломы ... (3) код может быть секретным (не все разработки являются открытыми), и его кража не всегда доставляет удовольствие. - person max; 13.09.2012
comment
@max 1) Теоретически это может быть правдой, но OP специально заявил, что он использует автоматически сгенерированный пароль 2) контроль версий останавливает это, вы можете видеть все изменения, которые были зарегистрированы, как это может быть проблемой? 3) если кто-то имеет доступ к паролям в виде открытого текста, хранящимся на вашем компьютере, он также имеет доступ к вашему коду. Пароль здесь не имеет смысла, потому что они могут просто сбросить ваш код на ключ. - person goldenratio; 27.09.2012
comment
@goldenratio для автоматически генерируемых паролей вроде бы не проблема. На 2), хотя вы не всегда проверяете каждый коммит от себя. - person max; 28.09.2012
comment
@LarsCorneliussen Это неплохой ответ. Не каждый вариант использования требует такого уровня безопасности. Расширение брелока - это вариант, как и этот. - person Cypher; 11.02.2014
comment
@LarsCorneliussen: никогда или всегда хорошо в теории, реальность ИТ такова, что вы должны учитывать небезопасное хранилище, и иногда вы вынуждены это делать. Решения на основе связки ключей могут работать в средах конечных пользователей, это не относится к автоматическим установкам, когда службы взаимодействуют друг с другом. Рано или поздно вы храните что-то более или менее небезопасно (даже если это означает смарт-карту в Форт-Ноксе) - person WoJ; 14.01.2015
comment
Неплохой ответ. Правильный. Возможно, это плохая практика, но уведомление есть. - person Nande; 09.04.2017

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

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

[extensions]
mercurial_keyring=

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

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

Для получения дополнительных сведений о связывании вашего имени пользователя с URL-адресом см. Конфигурация репозитория (SMTP ) на странице расширения Keyring.

person Vlad Iliescu    schedule 24.07.2010
comment
Я только что попробовал это решение, и оно отлично работало с Windows 7. Очень хорошо! Спасибо! - person mateuscb; 24.03.2011
comment
у меня работает хорошо, но я думаю, вам также необходимо указать имя пользователя либо под заголовком [auth], либо изменить путь к репозиторию, например имя пользователя @ host (согласно ссылке Keyring выше) - person Tom Carver; 05.04.2011
comment
Хороший ответ, определенно лучший способ. - person vobject; 04.05.2011
comment
Как насчет сохранения имени пользователя и пароля, если вы находитесь за веб-прокси? - person Seth; 01.05.2012
comment
@Seth Я никогда не использовал его таким образом - person Vlad Iliescu; 01.05.2012
comment
Правильный способ - использовать раздел auth для настройки имени пользователя. У вас не должно быть информации об авторизации в вашем пути репо, например. [auth] \n bitbucket.org.prefix = bitbucket.org \n bitbucket.org.username = schlamar - person schlamar; 04.06.2013
comment
@Seth Это не имеет ничего общего с настройкой прокси ?! - person schlamar; 04.06.2013
comment
[расширение связки ключей] уже идет в комплекте с TortoiseHg, поэтому все, что вам нужно сделать, это активировать его, написав следующее в вашем файле mercurial.ini. Похоже, это не относится к Linux. Я добавил расширение в ~ / .hgrc, но TortoiseHg сохранил мое имя пользователя и пароль в виде обычного текста в том же файле ~ / .hgrc. Лучше, чем хранить его в каталоге репозитория, но все же не то, что я бы назвал безопасным. Таким образом, либо расширение связки ключей не включается простым добавлением [extension] mercurial_keyring = в .hgrc в Linux, либо концепция связки ключей, которую оно реализует, довольно плохая. - person matteo; 01.01.2015
comment
Где именно mercurial.ini находится в Windows 8.1? - person Dmitri Nesteruk; 12.05.2015
comment
С TortoiseHg вам не нужно редактировать Mercurial.ini, вы можете просто проверить его в списке расширений окна настроек. - person CharlesB; 18.01.2017
comment
Обратите внимание, что Keyring не поставляется вместе с TortoiseHg для Mac. - person Tom Granot; 22.10.2018

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

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

person bruha    schedule 19.11.2011
comment
похоже, что здесь также хранится пароль в виде открытого текста - если у вас включено расширение связки ключей, то поле пароля становится недоступным - person Vlad Iliescu; 10.01.2012
comment
Работает только в том случае, если вы используете протокол https, при настройке на http замок исчезает. - person Despertar; 20.01.2013
comment
Принятые устаревшие ответы - отстой, у этого должен быть зеленый чекки! - person William T. Mallard; 10.06.2018

Если вы хотите настроить его через TortoiseHg, доступно диалоговое окно «Настройка репозитория». После открытия диалогового окна перейдите на вкладку «Синхронизация». Вы можете добавить путь с информацией об авторизации HTTPS.

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

person kuy    schedule 04.01.2010

Просто измените файл hgrc в каталоге .hg локального репозитория так, чтобы он выглядел так:

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

где имя - это ваш логин в Google Code без битов gmail / googlemail, например. 'fredb' (не [email protected]), пароль - это пароль, созданный Google, а yourproj - имя вашего проекта GC. Так что-то вроде:

default = https://fred:[email protected]/hg/
person Community    schedule 24.04.2011
comment
Никогда не храните пароли в виде обычного текста. НИКОГДА! Используйте mercurial_keyring - TortoiseHG тогда запрашивает пароль только один раз. - person Lars Corneliussen; 27.10.2011
comment
Никогда не говори никогда :) Да, SSH-ключ предпочтительнее, чем Keyring, Keyring предпочтительнее, чем открытый текст, но на самом деле бывают разные ситуации. P.S. поддержал как ответ на брелок, так и этот. - person Alex Shesterov; 11.06.2016

У меня это работает с 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
person Marcel Fernandez    schedule 09.01.2017

Если вы хотите сохранить пароль в mercurial.ini, и он больше не работает после обновления до TortoiseHg 4.9 или выше, возможное решение - добавить порт к префиксу:

[auth]
tax.prefix = http://server:8080
tax.username = cerveser
tax.password = mypassword
person Cerveser    schedule 26.05.2020