Я пытаюсь клонировать свое персональное ветвление на GitHub с помощью git+ssh протокола с TortoiseHg. Это дает мне довольно странную ошибку. Вот команда
hg clone git+ssh://git@github.com:myusername/thefork.git
Это - после того, как я установил модуль hg-мерзавца, и он работает просто великолепно для клонирования использования git://синтаксис. Но я полагаю, что это испытывает затруднения из-за ssh. Ошибка, которую я получаю, является этим.
importing Hg objects into Git
[Error 2] The system cannot find the file specified
Я попытался добавить вручную команду ssh в файл mercurial.ini как это
[ui]
username = email@address.com
ssh="C:\Program Files\TortoiseHg\TortoisePlink.exe" -ssh -2 -i "C:\Source\SSHPrivateKey.ppk"
Но я все еще получаю ту же ошибку. Какие-либо идеи?
Обновление 1
Если я выполняю ту же команду от оболочки Bash Мерзавца, она работает просто великолепно. Я получаю это.
importing Hg objects into Git
Counting objects: 1559, done.
Compressing objects: 100% (586/586), done.
Total 1559 (delta 960), reused 1534 (delta 947)
importing Git objects into Hg
at: 0/86
updating to branch default
219 files updated, 0 files merged, 0 files removed, 0 files unresolved
Я предполагаю, что это - потому что это может найти ssh.exe, и мой ключ уже импортируется. Я могу добавить путь ssh.exe к пути командных строк окон, и затем вместо предыдущей ошибки я получаю это.
importing Hg objects into Git
Permission denied (publickey).
abort: the remote end hung up unexpectedly
Кажется, что это ищет именно ssh.exe eventhough, я указал альтернативу ssh путь в mercurial.ini. Но мое предположение здесь - то, что та конфигурация только для ssh, включил подвижный сервер и не относится к плагину hg-мерзавца.
Я нашел способ обойти это, но он довольно хакерский. Я заметил, что ProcessMonitor показывает, что он ищет ssh.exe в нескольких разных путях, поэтому я скопировал TortoisePlink.exe в папку TortoiseHg и назвал его ssh.exe.
copy "C:\Program Files\TortoiseHg\TortoisePlink.exe" "C:\Program Files\TortoiseHg\ssh.exe"
Даже с этим изменением аутентификация по-прежнему не пройдёт. Вы получите всплывающее окно и это.
importing Hg objects into Git
abort: the remote end hung up unexpectedly
Итак, вам нужно получить pageant.exe, который поставляется с основной установкой PuTTy . Запустите это и добавьте к нему свой ключ. Затем снова запустите команду clone, и она должна пройти проверку подлинности.
Я использую plink.exe и pageant.exe вместо TortoisePlink.exe. «pageant.exe» автоматически предоставляет парольную фразу, когда она требуется «plink.exe».