Как настроить push mercurial, не спрашивая мой пароль через ssh? - PullRequest
6 голосов
/ 29 августа 2010

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

Я работаю в Ubuntu 9.10

Ответы [ 3 ]

13 голосов
/ 29 августа 2010

В Linux и Mac используйте ssh-agent.

  1. Убедитесь, что у вас есть пара ключей ssh ​​(см. man ssh-keygen)
  2. Скопируйте ваш открытый ключ (из * 1008)*) на удаленном компьютере, присвоив ему уникальное имя (например, myhost_key.pub)
  3. Войдите на удаленный компьютер обычным способом и добавьте открытый ключ, который вы только что скопировали, в файл ~/.ssh/authorized_keys
  4. Запустите ssh-add на своей локальной рабочей станции, чтобы добавить свой ключ в цепочку для ключей

Теперь вы можете использовать любые удаленные hg команды в этом сеансе, не требуя аутентификации.

9 голосов
/ 29 августа 2010

Если вы используете Windows, прочитайте мое руководство Mercurial / SSH . Внизу поста вы найдете информацию о том, как использовать PuTTy , чтобы сделать это для вас.

Редактировать: - Вот часть поста, о которой я говорю (имейте в виду, что вам нужно запустить конкурс с уже загруженным ключом, чтобы это работало):


Клиент: Настройка Mercurial

Если вы этого еще не сделали, убедитесь, что вы установили Mercurial на клиентский компьютер с настройками по умолчанию. Обязательно сообщите установщику, что нужно добавить путь Mercurial к системному PATH.

Последний шаг настройки для клиента - указать Mercurial использовать инструменты PuTTy при использовании SSH. Mercurial можно настроить с помощью пользовательского файла конфигурации с именем .hgrc. В Windows его также можно назвать Mercurial.ini. Файл находится в вашей домашней папке. Если вы не знаете, какая у вас домашняя папка, просто откройте командную строку и введите echo% USERPROFILE% - это укажет вам путь.

Если вы еще не настроили свою конфигурацию, скорее всего, файл конфигурации не существует. Так что вам придется его создать. Создайте файл с именем .hgrc или Mercurial.ini в вашей домашней папке вручную и откройте его в текстовом редакторе. Вот как выглядит моя часть:

[ui]
username = OJ Reeves

editor = vim
ssh = plink -ssh -i "C:/path/to/key/id_rsa.ppk" -C -agent

Последняя строка - это ключ, и это то, что вам нужно, чтобы убедиться, что он установлен правильно. Мы говорим Mercurial использовать программу plink. Это также идет с PuTTy и является версией командной строки того, что сама программа PuTTY делает за кулисами. Также добавим несколько параметров:

  • -ssh: указывает, что мы используем протокол SSH.
  • -i "file.ppk": указывает местоположение файла закрытого ключа, который мы хотим использовать для входа на удаленный сервер. Измените это, чтобы указать на ваш локальный ppk-совместимый закрытый ключ с замазкой Убедитесь, что вы используете прямую косую черту и для разделителей пути!
  • -C: этот переключатель включает сжатие.
  • -агент: Это говорит plink, что нужно поговорить с утилитой театрализованного представления, чтобы получить ключевую фразу для ключа вместо того, чтобы запрашивать его в интерактивном режиме.

Клиент готов к работе!

0 голосов
/ 31 мая 2015

Установить PuTTY .

Если вы работаете в Windows, откройте projectdir/.hg/hgrc в вашем любимом текстовом редакторе.Отредактируйте его так, чтобы оно выглядело так:

[paths]
default = ssh://hg@bitbucket.org/name/project

[ui]
username = Your Name <your@email.com>
ssh = "C:\Program Files (x86)\PuTTY\plink.exe" -ssh -i "C:\path\to\your\private_key.ppk" -C -agent

Если нажать кнопку навсегда, сервер может попытаться задать вам вопрос (но он не отображается).

Запустите это:

"C:\Program Files (x86)\PuTTY\plink.exe" -T hg@bitbucket.org -i "C:\Program Files (x86)\PuTTY\plink.exe" -ssh -i "C:\path\to\your\private_key.ppk"

Ответьте на любые вопросы и попробуйте снова нажать кнопку.

Если вы используете Bitbucket, откройте свой закрытый ключ с помощью puttygen, скопируйте свой открытый ключ из верхнего текстового поля и добавьтеэто к вашей учетной записи пользователя: https://bitbucket.org/account/user/USERNAME/ssh-keys/

...