Мы используем Mercurial поверх SSH для нашей разработки. Мы используем Hudson для непрерывной интеграции и развернули его на Tomcat, работающем на Windows 2003 Server с использованием учетной записи Local System. Mercurial настроен на использование plink.exe Putty в качестве команды ssh в Mercurial.ini вместе с закрытым ключом для аутентификации SSH.
Когда Хадсон пытается выполнить любую команду Mercurial через SSH, операция просто блокируется. Я вижу три запущенных процесса: hg.exe, cmd.exe и plink.exe. На удаленном компьютере я также вижу, как открывается сеанс SSH и принимается ключ аутентификации.
После этого ничего не происходит, и все просто блокируется, казалось бы, навсегда. (Кстати, subversion / SVN через SSH работает от Hudson на один и тот же сервер, используя одного и того же пользователя и ключ аутентификации).
Решение, конечно, было бы лучшим, но, по крайней мере, намек на то, как мне отладить его, чтобы продвинуться дальше, было бы неплохо, так как я застрял и даже не получил сообщения об ошибке прямо сейчас.
Если что-то подобное случится, всегда попробуйте вручную с той же учетной записью. Постарайтесь сохранить как можно больше того же, что и Хадсон. Результат скажет вам, в чем настоящая проблема. Обычно это что-то вроде сертификата, который нужно принять. Если вам нужно принять сертификат, используйте Плинк квеста который является расширенной версией шпатлевки plink.
Используйте psexec из Sysinternals (http://download.sysinternals.com/files/PSTools.zip) для запуска как системная учетная запись.
это
psexec -i -s cmd.exe
предоставляет вам командную оболочку в качестве пользователя локальной системы.
Может быть, ключ защищен паролем? В wiki Меркуирала есть несколько предложений, если это так. В основном они предлагают: а) использовать TortoisePlink или б) использовать конкурс.
Проверять, выписываться: http://mercurial.selenic.com/wiki/AccessingSshRepositoriesFromWindows