Как использовать TortoiseHg из командной строки без PuTTY (Pageant)

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

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

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

введите описание изображения здесь

Совершенно аналогичный результат, если я попытаюсь напрямую получить доступ к репозиторию через ssh: ssh -vT [email protected]

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

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


person radistao    schedule 12.08.2015    source источник
comment
Вы пробовали использовать HTTPS вместо SSH?   -  person Kevin    schedule 12.08.2015
comment
мне нужен ssh, а не https   -  person radistao    schedule 12.08.2015
comment
Bitbucket отлично поддерживает HTTPS.   -  person Kevin    schedule 12.08.2015
comment
проблема связана не с Bitbucket, а с TortoiseHg   -  person radistao    schedule 12.08.2015
comment
TortoiseHg также поддерживает HTTPS.   -  person Kevin    schedule 12.08.2015
comment
Вы тролль? Почему ты не предложил мне использовать git? Что также отлично работает с Bitbucket и HTTPS. Вопрос конкретный и ясный: ssh в TortoiseHg. Ни других протоколов, приложений или репозиториев.   -  person radistao    schedule 12.08.2015
comment
Windows не может полностью помещать случайные точечные файлы и папки в домашний каталог; нет ~/.ssh. Вы помещаете материал в% APPDATA%. И если ваши вещи вообще не связаны с приложением, их некуда поместить. Я пытался найти решение, которое подойдет вам, поскольку вы, похоже, запрашиваете функциональность, которой не существует.   -  person Kevin    schedule 12.08.2015
comment
Вы можете использовать SSH с помощью Cygwin в Windows и запускать hg внутри Cygwin. Если вы пытаетесь подключиться к ящику Windows через SSH, вы можете настроить sshd через Cygwin. Приносим извинения, если это не связано с вашим вопросом, если это не помогает, боюсь, я не понимаю, о чем вы спрашиваете.   -  person dimo414    schedule 12.08.2015


Ответы (3)


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

  1. Используйте TortoisePlink в качестве клиента ssh с явной ссылкой на ключ в конфигурации Mercurial (< em>% 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"

    # or

    # ssh = "PATH_TO_ANY_OTHER_SSH_CLIENT_LIKE_CYGWIN"

Я пробовал оба способа - они отлично работают.

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

Примечания:

  • Иногда, на основе синтаксического анализатора, пути в файлах ini анализируются с использованием символов eascaping, поэтому \ может экранировать следующий символ. В этом случае путь должен выглядеть как C: \ Program Files (x86) \ Git \ bin \ ssh.exe (с двойными косыми чертами)
  • I have git\bin directory in my %PATH% variable to use ssh without full path specifying. In this case in Mercurial config you can use just like this:

    [ui]

    ssh = ssh

person radistao    schedule 13.08.2015

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

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

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

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

person Kevin    schedule 12.08.2015
comment
Это не то, как TortoisePlink все делает. Windows не заботится, и размещение каталога .ssh в% USERPROFILE% может нормально работать в Windows. - person codekaizen; 12.03.2016

Как предотвратить ошибку« Нет поддерживаемых методов аутентификации »при использовании TortoiseHg?

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

person Abei Villafane    schedule 16.07.2017