在Windows上使用Git插件为Hudson克隆/提取存储库的问题

6

在有人批评我之前,我已经检查了所有相关的帖子,但仍然没有找到解决我的问题的方法。

我在Windows服务器上安装了带有Git插件的Hudson(不是我的选择),并且Hudson作为服务运行。 Git/bin 已经添加到了路径中。 但是我无法克隆存储库。 这里是控制台输出的简化显示:

Started by user anonymous
Checkout:workspace / C:\.hudson\jobs\sdf\workspace - hudson.remoting.LocalChannel@65394b
Last Built Revision: Revision 74200b32314231a5efdadd87bf36b42ec145c720 (origin/master)
Checkout:workspace / C:\.hudson\jobs\sdf\workspace - hudson.remoting.LocalChannel@65394b
Fetching changes from the remote Git repository
Fetching upstream changes from ssh://git.mccannlondon.co.uk/git/mccann_admin
[workspace] $ "C:\Program Files\Git\bin\git.exe" fetch -t ssh://git.mccannlondon.co.uk/git/mccann_admin +refs/heads/*:refs/remotes/origin/*
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 f1:48:2a:0a:d9:18:cf:2e:f2:8c:b3:25:7f:34:d5:34
Connection abandoned.
fatal: The remote end hung up unexpectedly
ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway

似乎需要对主机进行身份验证,但我不确定为什么当我设置管理员作为Hudson服务的所有者时,Hudson以用户anonymous启动作业。有谁知道:
a)如何更改Hudson的运行用户?
b)使用与Hudson相同的用户帐户连接到远程计算机,以允许Hudson获取数据?
如果此前已经发布了此问题,请见谅,但我花了好几个小时搜索,却找不到任何结果。
谢谢
Lewis

你是在使用Putty还是OpenSSH? - TheDon
4个回答

4
这可能与问题Git,在Windows上无法克隆repo有关。
问题在于MSysGit在后台启动PLink,即终端实际上未连接到PLink的输入。这意味着您无法在PLink中键入任何内容。
您只需使用PLink或PuTTY连接到服务器一次,回答Yes,从那时起,您将不会再被询问。 教程来自cletus也可能会有所帮助。

这个问题的良好描述可以在这篇博客文章中找到。

问题在于Hudson是一个服务并在“本地服务帐户”用户下运行。接下来的步骤是手动添加跟踪缓存(一个文件),因为我知道在Linux中可以这样做。但是,Windows没有将此缓存作为文件,而是使用注册表。在注册表中搜索时,找到了我的用户条目(先前已访问过仓库并添加到缓存占用量中),其中跟踪被存储并复制到HKEY_USERS以便用户可以访问它。该条目如下所示:
Key Name: HKEY_USERS\.DEFAULT\Software\SimonTatham\PuTTY\SshHostKeys
Class Name: NO CLASS
Last Write Time: 23.01.2009 - 18:35
Value 0
Name: dss@22:bla_bla.com
Type: REG_SZ
Data: 0xb477b...

从命令行中,您可以按以下方式轻松添加密钥:

reg add HKEY_USERS\.DEFAULT\Software\SimonTatham\PuTTY\SshHostKeys /v dss@22:bla_bla.com /d 0xb477b...

现在,Hudson作为一个服务运行,可以愉快顺畅地去到存储代码的仓库。

我曾经遇到过客户和命令行的这个问题,尝试了putty的技巧,结果解决了。谢谢! - Ingvald

1
“started by anonymous” 会告诉你是哪个 Hudson 用户启动了作业。如果您没有创建任何 Hudson 用户,则一切都由“anonymous”启动。
这与执行进程的操作系统用户无关。

0

您问如何更改Hudson运行的用户:您需要编辑服务(控制面板->管理工具->服务,双击Hudson服务并将“登录”更改为“此帐户”)。

一旦设置好帐户,我会确保git服务器在MINGW(Git Bash)的~hudson/.ssh/known_hosts中,并且有一个~hudson/.ssh/identity文件。我唯一的警告是,如果您在计算机上安装了cygwin,则需要确保%CYGWIN%为空,否则您将在Hudson日志中看到密钥权限错误。我的建议是在Hudson中将CYGWIN环境变量设置为空。


0

我遇到了同样的问题,在检查git插件http://wiki.hudson-ci.org/display/HUDSON/Git+Plugin后,

它指出需要在全局设置中将git路径更改为/usr/bin/git,并配置git用户名。

这解决了我的问题。

希望对你也有用,顺便说一下,我使用的是Ubuntu,但应该是相同的。


Hudson插件不足以满足要求。 - Dev Anand Sadasivam
如果hudson - unix box没有git命令,那么在hudson中使用git会失败吗? - Dev Anand Sadasivam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接