Как сохранить имя пользователя и пароль с ртутным?
Я использовал Mercurial в личном проекте, и я набирал свое имя пользователя и пароль каждый раз, когда я хочу что-то нажать на сервер.
Я попытался добавить следующее к .hgrc
файл в моем домашнем каталоге, но он, кажется, полностью игнорируется.
[ui]
username = MY_USER_NAME
password = MY_PASSWORD
Как сделать это правильно?
8 ответов:
вы можете сделать раздел auth в свой
.hgrc
или , например:[auth] bb.prefix = https://bitbucket.org/foo/ bb.username = foo bb.password = foo_passwd
часть " bb " является произвольным идентификатором и используется для сопоставления префикса с именем пользователя и паролем-удобно для управления различными комбо имени пользователя / пароля с различными сайтами (префикс)
вы также можете только указать имя пользователя, то вам просто нужно будет ввести пароль, когда вы нажимаете.
Подробнее см.: http://hgtip.com/tips/advanced/2009-10-01-configuring-user-auth-https/
Я бы также рекомендовал взглянуть на продление ключей. Поскольку он хранит пароль в кольце ключей вашей системы вместо обычного текстового файла, он более безопасен. Он поставляется в комплекте с TortoiseHg на Windows, и в настоящее время обсуждается вопрос о распространении его в качестве комплектного расширения на всех платформах.
существует три способа сделать это: использовать .hgrc-файл, используйте ssh или используйте расширение keyring
1. Небезопасный способ-обновить~/.файл hgrc
формат, который работает для меня (в моем ~/.файл hgrc) это
[ui] username=Chris McCauley <chris.mccauley@mydomain.com> [auth] repo.prefix = https://server/repo_path repo.username = username repo.password = password
Вы можете настроить столько репозиториев,сколько хотите, добавив больше триплетов префикса, имени пользователя, пароля, добавив уникальный тег.Это работает только в Mercurial 1.3 и, очевидно, ваш имя пользователя и пароль в виде обычного текста - не очень хорошо.
2. Безопасный способ-Используйте SSH, чтобы избежать использования паролей
Mercurial полностью поддерживает SSH, поэтому мы можем воспользуйтесь возможностью SSH войти на сервер без пароля - вы выполняете настройку один раз, чтобы предоставить самогенерируемый сертификат. Это самый безопасный способ сделать то, что вы хотите.
Вы можете найти дополнительную информацию о настройке вход без пароля здесь
3. Расширение кольцо для ключей
Если вы хотите безопасный вариант, но не знакомы с SSH, почему бы не попробовать это?
документы ...
расширение запрашивает пароль HTTP при первом pull / push в / из данного удаленного репозитория (так же, как это делается по умолчанию), но сохраняет пароль (вводится комбинацией имени пользователя и пульта дистанционного управления URL-адрес репозитория) в базе данных паролей. При следующем запуске он проверяет для имени пользователя В.с HG/hgrc, то за соответствующий пароль в база данных паролей и использует эти учетные данные, если они найдены.
есть более подробная информация здесь
никто не упоминал расширение брелока. Он сохранит имя пользователя и пароль в системном брелоке, что гораздо более безопасно, чем хранение ваших паролей в статическом файле, как упоминалось выше. Выполните следующие шаги, и вы должны быть хорошо идти. У меня это было и работает на 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 =
простой хак, чтобы добавить имя пользователя и пароль к push url в вашем проекте
.hg/hgrc
file:[paths] default = http://username:password@mydomain.com/myproject
(обратите внимание, что таким образом вы храните пароль в виде обычного текста)
если вы работаете над несколькими проектами в одном домене, вы можете добавить переписать правила , чтобы избежать повторения этого для всех проектов:
[rewrite] http.//mydomain.com = http://username:password@mydomain.com
опять же, так как пароль хранится в обычном тексте, я обычно храню только мой имя пользователя:.
если вы работаете под Gnome, я объясню, как интегрировать Mercurial и брелок Gnome здесь:
http://aloiroberto.wordpress.com/2009/09/16/mercurial-gnome-keyring-integration/
никто выше не объяснил / уточнил условия для начинающего пользователя. Они путаются в терминах
.hg / hgrc -- этот файл используется для репозитория, в локальном / рабочем месте / в фактическом репозитории .папка НД.
~/.hgrc-этот файл отличается от ниже. этот файл находится в ~ или домашнем каталоге.
myremote.ХХХХ=..... ББ.ХХХХ=......
Это одна из строк в разделе/директиве [auth] , при использовании mercurial keyring расширение. Убедитесь, что имя сервера, которое вы туда поместили, совпадает с тем, что вы используете при выполнении "HG clone", иначе брелок скажет, что пользователь не найден. bb или myremote в строке ниже - это "псевдоним", который вы должны дать при выполнении "HG clone http:/.../../repo1 bb или myremote " в противном случае он не будет работать, или вы должны убедиться, что ваш локальный репозиторий .файл hg/hgrc содержит тот же псевдоним, т. е. то, что вы дали при выполнении клонирования hg .. как последний параметр).
PS следующие ссылки для очистки подробности, извините за быстро написанное грамматика.
- https://stackoverflow.com/questions/14267873/mercurial-hg-no-changes-found-cant-hg-push-out/14269997#14269997
- http://www.linuxquestions.org/questions/showthread.php?p=4867412#post4867412
- https://stackoverflow.com/questions/12503421/hg-push-error-and-username-not-specified-in-hg-hgrc-keyring-will-not-be-used/14270602#14270602
- OpenSUSE Apache - Windows LDAP - групповая аутентификация пользователей-Mercurial
ex: если внутри ~/.hgrc (домашний каталог пользователя в Linux/Unix) или mercurial.ini в Windows в домашнем каталоге пользователя, содержит, следующую строку, и если вы делаете
`"hg clone http://.../.../reponame myremote"`
, тогда вам никогда не будет предложено ввести учетные данные пользователя более одного раза по ссылке http repo. В./~ 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, имя сервера или полное доменное имя сервера
установка 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@address.com [extensions] mercurial_keyring =
Если вы используете TortoiseHg, вы должны выполнить эти три шага, показанные на прилагаемом снимке экрана, это добавит ваши учетные данные для конкретного репозитория, с которым вы работаете.
чтобы добавить глобальные настройки, вы можете получить доступ к файлу C:\users\user.name\mercurial.ini и добавить раздел
[auth] bb.prefix=https://bitbucket.org/zambezia/packagemanager bb.username = $username bb.password = $password
надеюсь, что это помогает.
хотя это может или не может работать в вашей ситуации, я счел полезным создать открытый / закрытый ключ с помощью Putty's Pageant.
Если вы также работаете с bitbucket (. org), он должен дать вам возможность предоставить открытый ключ для вашей учетной записи пользователя, а затем команды, которые обращаются к репозиторию, будут автоматически защищены.
Если Pageant не запускается для вас при перезагрузке, вы можете добавить ярлык для Pageant в меню "Пуск" Windows и ярлык может потребоваться иметь "свойства", заполненные местоположением вашего частного (.файл ППК).
с этим на месте Mercurial и ваши локальные репозитории должны быть настроены на push/pull с использованием формата SSH.
вот некоторые подробные инструкции Atlassian's сайт для Windows или Mac / Linux.
вы не должны верить мне на слово, и нет никаких сомнений, что есть и другие способы сделать это. Возможно, эти шаги описано здесь больше для вас:
- запустите puttygen из пуск -> шпатлевка-> генератор puttygen
- создайте новый ключ и сохраните его как a .ppk файл без пароля
- используйте Putty для входа на сервер, к которому вы хотите подключиться
- добавьте текст открытого ключа из PuttyGen в текст~/.ssh / authorized_keys
- создать ярлык для вашего .ppk файл из пуск - > замазка для запуска - > запуск
- выбрать .ППК ярлык из меню запуска (это произойдет автоматически при каждом запуске)
- см. значок конкурса в системном трее? Щелкните его правой кнопкой мыши и выберите "новый сеанс"
- введите имя пользователя@hostname в поле" Имя хоста"
- теперь вы войдете в систему автоматически.