Как сохранить имя пользователя и пароль с помощью Mercurial?
Я использовал Mercurial в личном проекте, и я каждый раз вводил свое имя пользователя и пароль, когда я хотел что-то нажать на сервер.
Я попытался добавить следующее в файл .hgrc
в моем домашнем каталоге, но он, кажется, полностью игнорируется.
[ui]
username = MY_USER_NAME
password = MY_PASSWORD
Как это сделать правильно?
Ответы
Ответ 1
Вы можете создать раздел авторизации в своем файле .hgrc
или Mercurial.ini
, например так:
[auth]
bb.prefix = https://bitbucket.org/repo/path
bb.username = foo
bb.password = foo_passwd
Часть ‘bb является произвольным идентификатором и используется для сопоставления префикса с именем пользователя и паролем - удобно для управления различными комбинациями имени пользователя/пароля на разных сайтах (префикс)
Вы также можете указать только имя пользователя, тогда вам просто нужно будет ввести пароль при нажатии.
Я также рекомендовал бы взглянуть на расширение связки ключей. Поскольку он хранит пароль в вашем системном брелоке вместо простого текстового файла, он более безопасен. Он входит в комплект TortoiseHg для Windows, и в настоящее время обсуждается вопрос о его распространении в виде расширения на всех платформах.
Ответ 2
Существует три способа сделать это: использовать файл .hgrc, использовать ssh или использовать расширение keyring
1. Способ INSECURE - обновите файл ~/.hgrc
Формат, который работает для меня (в моем файле ~/.hgrc), это
[ui]
username=Chris McCauley <[email protected]>
[auth]
repo.prefix = https://server/repo_path
repo.username = username
repo.password = password
Вы можете настроить столько репозиториев, сколько хотите, добавив больше триплетов префикса, имени пользователя, пароля, добавив уникальный тег.
Это работает только в Mercurial 1.3 и, очевидно, ваше имя пользователя и пароль находятся в обычном тексте - нехорошо.
2. Безопасный способ - использовать SSH для AVOID с использованием паролей
Mercurial полностью поддерживает SSH, поэтому мы можем воспользоваться возможностью SSH для входа на сервер без пароля - вы выполняете настройку с отключением, чтобы предоставить самогенерируемый сертификат. Это, безусловно, самый безопасный способ сделать то, что вы хотите.
Вы можете найти дополнительную информацию о настройке пароля без пароля здесь
3. Расширение keyring
Если вам нужен безопасный параметр, но он не знаком с SSH, почему бы не попробовать это?
Из документов...
Расширение запрашивает пароль HTTP при первом нажатии/нажатии в/из данного удаленного репозитория (как это делается по умолчанию), но сохраняет пароль (с помощью комбинации имени пользователя и удаленного URL-адрес репозитория) в базе данных паролей. На следующем прогоне он проверяет для имени пользователя в .hg/hgrc, затем для подходящего пароля в базу данных паролей и использует эти учетные данные, если они найдены.
Более подробная информация здесь
Ответ 3
Никто не упомянул расширение ключей. Это сохранит имя пользователя и пароль в системном брелоке, что гораздо более безопасно, чем хранить ваши пароли в статическом файле, как упомянуто выше. Выполните шаги ниже, и вы должны быть в порядке. Я запустил это в Ubuntu примерно через 2 минуты.
>> 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
Ответ 4
Простой взлом - это добавить имя пользователя и пароль к URL-адресу push в файле проекта .hg/hgrc
:
[paths]
default = http://username:[email protected]/myproject
(Обратите внимание, что таким образом вы храните пароль в виде простого текста)
Если вы работаете над несколькими проектами в одном домене, вы можете добавить правило перезаписи в свой ~/.hgrc
файл, чтобы избежать повторения этого для всех проектов:
[rewrite]
http.//mydomain.com = http://username:[email protected]
Опять же, поскольку пароль хранится в виде обычного текста, я обычно храню только свое имя пользователя.
Если вы работаете в Gnome, я объясню, как интегрировать Mercurial и Gnome Keyring здесь:
http://aloiroberto.wordpress.com/2009/09/16/mercurial-gnome-keyring-integration/
Ответ 5
Никто выше не объяснил/разъяснил условия для начинающего пользователя. Они сбиты с толку условиями
.hg/hgrc - этот файл используется для репозитория, в локальном/рабочем пространстве/в реальной папке репозитория .hg.
~/.hgrc - этот файл отличается от приведенного ниже. этот файл находится в ~ или домашнем каталоге.
myremote.xxxx =.....
bb.xxxx =......
Это одна из строк в разделе/директива [auth] при использовании расширения ртутного набора ключей. Убедитесь, что имя сервера, которое вы там указали, совпадает с тем, которое вы используете при выполнении команды "hg clone", иначе брелок скажет "пользователь не найден". bb или myremote в строке ниже - это "псевдоним", который вы ДОЛЖНЫ дать при выполнении "hg clone http:/.../../repo1 bb или myremote", в противном случае это не сработает, или вы должны убедиться, что ваш локальный Файл репозитория .hg/hgrc содержит тот же псевдоним, т.е. (что вы дали при выполнении hg clone.. в качестве последнего параметра).
PS следующие ссылки для ясных деталей, извините за быстро написанную грамматику.
Например: если внутри ~/.hgrc (домашний каталог пользователя в Linux/Unix) или mercurial.ini в Windows в домашнем каталоге пользователя, содержится следующая строка, и если вы делаете
'"hg clone http://.../.../reponame myremote"'
тогда вам никогда не будет предложено ввести учетные данные пользователя более одного раза на ссылку HTTP-репо. В ~/.hgrc под [extensions] есть строка для "mercurial_keyring =" или "hgext.mercurial_keyring =/path/to/your/mercurial_keyring.py".. одна из этих строк должна быть там.
[auth]
myremote.schemes = http https
myremote.prefix = thsusncdnvm99/hg
myremote.username = c123456
Я пытаюсь выяснить, как установить свойство PREFIX, чтобы пользователь мог клонировать или выполнять любые операции Hg без запросов имени пользователя/пароля и не беспокоясь о том, что он упомянул в http://..../.... для имени сервера при использовании ссылки репозитория Hg. Это может быть IP, servername или FQDN сервера
Ответ 6
mercurial_keyring установка на Mac OSX с помощью MacPorts:
sudo port install py-keyring
sudo port install py-mercurial_keyring
Добавьте следующее в ~/.hgrc:
# Add your username if you haven't already done so.
[ui]
username = [email protected]
[extensions]
mercurial_keyring =
Ответ 7
Если вы используете TortoiseHg, вам необходимо выполнить эти три шага, показанные на прилагаемом скриншоте, это добавит ваши учетные данные для конкретного репозитория, с которым вы работаете.
![введите описание изображения здесь]()
Чтобы добавить глобальные параметры, вы можете получить доступ к файлу C:\users\user.name\mercurial.ini и добавить раздел
[auth]
bb.prefix=https://bitbucket.org/zambezia/packagemanager
bb.username = $username
bb.password = $password
Надеюсь, что это поможет.
Ответ 8
Хотя он может работать или не работать в вашей ситуации, я нашел полезным генерировать открытый/закрытый ключ, используя Putty Pageant.
Если вы также работаете с bitbucket (.org), он должен предоставить вам возможность предоставить открытый ключ для вашей учетной записи пользователя, а затем команды, которые обращаются к репозиторию, будут автоматически защищены.
Если при перезагрузке Projectant не запускается для вас, вы можете добавить ярлык к Pageant в меню "Пуск" Windows, и ярлык, возможно, должен иметь "свойства", заполненные местоположением вашего частного (. ppk).
С помощью этого на месте Mercurial и ваши локальные репозитории необходимо будет настроить push/pull в формате SSH.
Вот несколько подробных инструкций на сайте Atlassian для Windows или Mac/Linux.
Вам не нужно заверить свое слово, и нет никаких других путей для этого. Возможно, эти шаги описанные здесь, больше для вас:
- Начать PuttyGen из Start → PuTTY- > PuttyGen
- Создайте новый ключ и сохраните его как .ppk файл без парольной фразы
- Используйте Putty для входа на сервер, к которому вы хотите подключиться,
- Добавить текст открытого ключа из PuttyGen в текст ~/.ssh/authorized_keys
- Создайте ярлык для вашего .ppk файла из Start → Putty для запуска → Startup
- Выберите ярлык .ppk из меню "Запуск" (это произойдет автоматически при каждом запуске).
- См. значок "Значок" на панели задач? Щелкните его правой кнопкой мыши и выберите "Новый сеанс"
- Введите имя пользователя @hostname в поле "Имя хоста"
- Теперь вы автоматически входите в систему.