Как сохранить имя пользователя и пароль с ртутным?


Я использовал Mercurial в личном проекте, и я набирал свое имя пользователя и пароль каждый раз, когда я хочу что-то нажать на сервер.

Я попытался добавить следующее к .hgrc файл в моем домашнем каталоге, но он, кажется, полностью игнорируется.

[ui]
username = MY_USER_NAME
password = MY_PASSWORD

Как сделать это правильно?

8 259

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 = 

https://www.mercurial-scm.org/wiki/KeyringExtension

простой хак, чтобы добавить имя пользователя и пароль к 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 следующие ссылки для очистки подробности, извините за быстро написанное грамматика.

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, вы должны выполнить эти три шага, показанные на прилагаемом снимке экрана, это добавит ваши учетные данные для конкретного репозитория, с которым вы работаете.

enter image description here

чтобы добавить глобальные настройки, вы можете получить доступ к файлу 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.

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

  1. запустите puttygen из пуск -> шпатлевка-> генератор puttygen
  2. создайте новый ключ и сохраните его как a .ppk файл без пароля
  3. используйте Putty для входа на сервер, к которому вы хотите подключиться
  4. добавьте текст открытого ключа из PuttyGen в текст~/.ssh / authorized_keys
  5. создать ярлык для вашего .ppk файл из пуск - > замазка для запуска - > запуск
  6. выбрать .ППК ярлык из меню запуска (это произойдет автоматически при каждом запуске)
  7. см. значок конкурса в системном трее? Щелкните его правой кнопкой мыши и выберите "новый сеанс"
  8. введите имя пользователя@hostname в поле" Имя хоста"
  9. теперь вы войдете в систему автоматически.