Назад | Перейти на главную страницу

Процесс Mercurial SSH блокируется при запуске из локальной системы

Мы используем 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