2015-08-12 8 views
1

Раньше я использовал установку командной строки Mercurial, и она отлично работала для меня с положением клиента ssh и ключами по умолчанию в ~/.ssh.Как использовать TortoiseHg из командной строки без PuTTY (Pageant)

На моем новом ноутбуке я установил TortoiseHg. Теперь любой удаленный запрос (например, рт.ст. тянуть или рт.ст. входящий) генерирует PuTTY Fatal Error:

Отключено: Нет Поддерживаемые методы аутентификации доступны (сервер послал: ОткрытыйКлюч)

enter image description here

Весьма похожий результат, если я пытаюсь напрямую получить доступ к хранилищу через ssh: ssh -vT [email protected]

Проблема может быть решена с помощью Pageant (plink): запустить его и добавить ключ шпатлевка, или добавить театрализованное (Plink) в Mercurial конфигурационный файл.

BUT, Я смотрю, как можно работать по-старому, без просмотра или плинка, используя только расположение по умолчанию ssh?

+0

Вы пробовали использовать HTTPS вместо SSH? – Kevin

+0

Мне нужно ssh, а не https – radistao

+0

Bitbucket поддерживает HTTPS просто отлично. – Kevin

ответ

4

Похоже, напротив git Mercurial не предоставляет собственный клиент SSH, поэтому использование Plink и Pageant является обязательным, за исключением двух обходных путей:

  1. Use TortoisePlink as ssh client with explicit key reference in Mercurial config (% USERPROFILE% \.hgrc или % USERPROFILE% \ Mercurial.ini):

    [Ui]

    SSH = "C: \ Program Files \ TortoiseHg \ Lib \ TortoisePlink.exe" -ssh -i% USERPROFILE % .ssh \ id_rsa.ppk

  2. Если вы установили git или cygwin (или любой другой способ использовать SSH на Windows), то можно использовать клиент стороннего SSH указывая путь в Mercurial конфигурации:

    [Ui]

    SSH = "C: \ Program Files (x86) \ Git \ Bin \ ssh.exe"

    # или

    # SSH = "PATH_TO_ANY_OTHER_SSH_CLIENT_LIKE_CYGWIN"

Я пробовал в обоих направлениях - они отлично работают.

Я использую второй, потому что я использую git распределенные инструменты на моем ПК в качестве основного ssh агента. Первый вариант подходит, если у вас нет альтернативы ssh на вашем ПК.

Примечание:

  • Несколько раз, основанное на анализаторе путь в ини файлов разобраны с символами eascaping, так \ может избежать следующего символа. В этом случае путь должен выглядеть C: \\ Program Files (x86) \\ Git \\ бен \\ ssh.exe (с двойными косыми чертами)
  • У меня есть мерзавец \ Bin каталог в моем% PATH% для использования ssh без указания полного пути. В этом случае в Mercurial конфигурации можно использовать так же, как это:

    [Ui]

    SSH = SSH

2

Нет, нет никакого способа сделать это без установки или использования некоторых программного обеспечения, кроме самого TortoiseHg.

Mercurial не реализует SSH. В Unix он просто запускает ssh и ожидает, что у него уже установлен подходящий клиент (это безопасная ставка, так как подавляющее большинство систем Unix либо имеют предварительно установленный SSH-клиент, либо могут устанавливать один из них относительно легко). В Windows, это не разумное предположение, так TortoiseHg bundles a client:

SSH является симметричным равный-равному защищенный туннель. Клиенты и серверы SSH имеют свои собственные системы управления ключами, поэтому Mercurial не участвует в запросах пароля при использовании SSH. Это проблема в Windows и, следовательно, TortoiseHg связывает клиент TortoisePlink SSH с установщиками Windows. TortoisePlink - это порт клиента Plink SSH, который использует диалоговые приглашения для авторизации ключей хоста и подсказок кодовой фразы. TortoisePlink (разработанный проектом TortoiseSVN) может использовать другие инструменты SSH, которые являются частью инструментальной цепочки Plink, включая ключевой агент Pageant.

Если вы не используете TortoisePlink, у вас, скорее всего, нет клиента SSH, с которым TortoiseHg способен взаимодействовать. И если вы не используете Pageant, у вас нет системы для сохранения ваших ключей; TortoisePlink не использует ~/.ssh, потому что это не то, как Windows делает что-то.

+0

Это не то, как «TortoisePlink» делает что-то. Windows все равно, и установка .ssh dir в% USERPROFILE% может отлично работать в Windows. – codekaizen

0

How do I prevent “No supported authentication methods available” error when using TortoiseHg?

Get/Run puttygen.exe, нажмите Генерируйте, (без кодовой фразы), перед тем как закрыть окно, сохраните pubkey, Save PrivKey. Скопируйте весь ключевой текст (или вам нужно будет вернуться в puttygen) и вставьте его в область Account/Profile/Settings/Security/SSHKeys на веб-странице BitBucket. (щелкните правой кнопкой мыши) значок pageant.exe в systray - Нажмите «Добавить ключ». Выйдите из конкурса и перезагрузите его, чтобы убедиться. Выходите из черепахи и перезагружайте его, чтобы убедиться. Хорошо пойти.