У нас есть вся сеть Windows, и я пытаюсь получить Tortoise Mercurial и запустить SSH для центрального репо для нашей небольшой команды. Я могу заставить его работать по большей части, но plink/tortoiseplink hang ПОСЛЕ выполнения команд успешно (clone/push и т. Д.)Windows TortoiseHg plink висит ПОСЛЕ клона/нажмите
Я установил Freesshd на нашем сервере Rc2 Widnows 2008 вместе с Tortoise Hg. Я создал сам публичный/закрытый ключ на сервере (имел проблемы, возникающие на клиенте) с использованием PuttyGen. Закрытый ключ Я скопировал на свой клиент и обновил mercurial.ini. Открытый ключ I переименовал и обновил Freesshd, чтобы указать на папку, содержащую открытые ключи. На стороне клиента я зарегистрировал свой закрытый ключ с помощью Pageant, создал сеанс в Putty и указал его на свой закрытый ключ и сохранил его. Когда я использую Putty для первоначального подключения, все начинает странно.
Я получаю командную строку для имени пользователя (нет подсказки для пароля), а в командной строке (после проверки подлинности) я не могу ввести. Возможно, проблема с Putty. Я попробую использовать Tortoise через (TortoisePlink.exe).
В Mercurial.ini у меня есть: [Ui] SSH = "C: \ шпатлевки \ TortoisePlink.exe" -ssh -2 -batch -C -i C: \ Users \ Jude.ssh \ JudePrivate.ppk
Если я использую консоль, я могу клонировать репо, но он зависает ПОСЛЕ того, как все делает. Используя --debug, последняя строка: 3 файла обновлены, файлы O удалены, 0 файлов удалены, 0 файлов не разрешены
Вид того, что я ожидал бы, когда файлы будут получать клоны. Но тогда я ничего не могу сделать. Ctrl+C
ничего не делает, и я должен убить процесс. (Что, кстати, затем показывает Ctrl^C в командной строке, а также остальную часть разметки клавиатуры).
Репо клонируется, отображается правильная версия файлов, но окно консоли не закрывается и не возвращает мне контроль.
Если я попытаюсь использовать Hg Workbench, я получаю аналогичную проблему. Я могу клонировать и толкать - это на самом деле происходит - но с помощью графического интерфейса я получаю:
% hg --repository C:\repositories\HgTest push --debug
ssh://[email protected]:22/d:/repositories/hgtest
pushing to ssh://[email protected]:22/d:/repositories/hgtest
running "C:\putty\TortoisePlink.exe" -ssh -2 -batch -C -i
C:\Users\Jude\.ssh\JudePrivate.ppk [email protected] -P 22 "hg -R d:/repositories/hgtest serve --stdio"
sending hello command
sending between command
remote: 145
remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch stream unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024
remote: 1
query 1; heads
sending batch command
searching for changes
all local heads known remotely
no changes found
sending listkeys command
checking for updated bookmarks
sending listkeys command
Зеленая полоса в верхней части Workbench говорит: «Стремление к SSH: // Jude @ dev01: 22/D:/репозитории/hgtest ... ", как и строка состояния внизу. Я оставил его так все выходные, и когда я вернулся, все было так. Я все еще могу использовать Hg Workbench (вроде), но не могу использовать pull/push/clone. Попытка закрыть Hg Workbench приводит к сообщению (в строке состояния) Sync tab cannot exit
, и я не могу закрыть приложение. Killing TortoisePlink.exe (или Plink.exe, в зависимости от того, что я пытаюсь) освобождает приложение, которое я могу использовать, или закрываю его как обычно.
Первоначально я думал, что это проблема с TortoiseHg или TortoisePlink, но загрузка Plink с сайта Putty приводит к тому же.
Для уточнения:
- я могу нажать/клон через SSH и без запроса пароля
- Я могу сделать это с помощью командной строки или Workbench Hg
- Независимо от того, какой метод я использую (или Plink.exe или TortoisePlink.exe), процесс должен быть убит вручную.
программного обеспечения, используемые + версии
Client (Windows Vista 32bit)
Tortoise Hg 2,3 (Merc 2,1, Python 2.6.6)
Plink 0.62
Сервер - (Windows Server 2008 RC2)
FreeSSHd 1.2.4
же Tortoise, как описано выше
Много поисков не дали ничего использования. Я пробовал все предложения, которые я видел (даже если они незначительно связаны), но безрезультатно. Поскольку фактические функции работают, я полагаю, что правильно настроил ключи, SSH, Tortoise и т. Д.
Я надеюсь, что у меня отсутствует простой вариант где-нибудь, но я подозреваю, что он ждет какой-то пользовательской подсказки.
Пальцы скрещены :)
=== UPDATE ===
Я нашел журнал событий для Putty (правой кнопкой мыши окно консоли замазка, вуаля, "Event Log" вариант. После того, как я ве погрузил сессию и щелкнул, я получаю окно консоли и login as:
подсказки После ввода своего имени и нажав возвращения, я получаю:.
Reading private key file "C:\Users\Jude\.ssh\JudePrivate.ppk"
Pageant is running. Requesting keys.
Failed to get reply from Pageant
Offered public key
Offer of public key accepted
Sent public key signature
Access granted
Opened channel for session
Allocated pty (ospeed 38400bps, ispeed 38400bps)
Started a shell/command
и это на данном этапе я в командной строке изменения c:\Windows\system32>
и могу 't введите что-нибудь.
=== UPDATE 2 ===
Использование палить я делаю следующее в консоли:
plink -v -ssh [email protected] "cmd /c echo hello"
и, а также всю информацию -v дает, Я см. hello
, затем Server sent command exist status 0
и Disconnected: All channels closed
. Это то, чего я ожидал бы.
Если я делаю это с черепаховой подкладкой, «tortoiseplink-v -ssh Jude @ dev01» cmd/c echo hello »« Я вижу, что ничего не возвращается и не записывается в окно, и я снова получаю командное приглашение.
Это означает, что SSH работает как псевдоним (dev01). Но должен ли я что-то увидеть при использовании TortoisePlink?
Ввод hg clone --verbose -- ssh://[email protected]/d:/repositories/hgtest C:\repositories\test
снова извлекает файлы, копирует их в тестовую папку, но затем не возвращает командную строку. Последняя строка 3 files updated...
и т.д.
=== UPDATE 3 ===
кажется hg.exe является порождением FreeSSHd на сервере, и это делает близко/финиш. Когда процесс hg.exe убит на сервере, клиентское (консольное/клонное диалоговое окно) ведет себя и завершает команду изящно.
Для уточнения:
- Я использую клон из командной строки или HG Workbench и указать псевдоним репо
- Согласно журналам все нормально, я проверка подлинности, файлы снесены через SSH и скопировано в местное репо, указанное мной в 1
- В этот момент он зависает - будь то консоль или HG Workbench или правый клик/клон.
- Использование Process Explorer на сервере позволяет мне убить hg.exe, порожденная службой FreeSSHd
- Как только я это сделаю, клиент говорит: «Команда выполнена успешно».
Итак, теперь это проблема с Tortoise Hg на сервере. Может быть FreeSSHd и черепаха не играют хорошо вместе ... Я предполагаю, что я буду переустанавливать все ...
=== UPDATE 4 ===
Кажется, я не только один с этим вопрос. Я заметил это раньше на SO, но в то время это было неактуально. Тем не менее, теперь у меня такая же проблема: Mercurial over ssh client and server on Windows Эта проблема не была решена (два года назад), так я должен держать этот вопрос открытым?
Http: // ртутный .selenic.com/wiki/AccessingSshRepositoriesFromWindows –
Уже была ссылка с закладкой и последовала за ней. Он устанавливает это хорошо - но не помогает устранить неполадки ... – Jag
ссылка с 2010 года о ** freeSSSHd ** настройки для Mercurial - http://opapao.blogspot.com/2010/02/setting-up-freesshd-to -work-with.html, но может быть уместным каким-то образом –