哈德逊赢了';不能从Git中提取

哈德逊赢了';不能从Git中提取,git,authentication,ssh,hudson,Git,Authentication,Ssh,Hudson,我打这个已经一天多了,快把我逼疯了 我在Win7电脑上安装了Git, 并选择了上的PuttyGen选项 安装 我已经生成了ssh密钥 使用腻子;我已经添加了ssh 我的Git帐户的密钥,并链接 选美比赛中的私钥 我已经准备好了 GIT_SSH指向我的油灰 plink.exe 我用油灰连接 去codaset&git让他们接受 作为已知的主机 我可以从控制台克隆,但hudson失败: Fetching upstream changes from git@codaset.com:xxx/xxx.g

我打这个已经一天多了,快把我逼疯了

  • 我在Win7电脑上安装了Git, 并选择了上的PuttyGen选项 安装
  • 我已经生成了ssh密钥 使用腻子;我已经添加了ssh 我的Git帐户的密钥,并链接 选美比赛中的私钥
  • 我已经准备好了 GIT_SSH指向我的油灰 plink.exe
  • 我用油灰连接 去codaset&git让他们接受 作为已知的主机
我可以从控制台克隆,但hudson失败:

Fetching upstream changes from git@codaset.com:xxx/xxx.git
[workspace] $ "C:\Program Files\Git\bin\git.exe" fetch -t git@codaset.com:xxx/xxx.git +refs/heads/*:refs/remotes/origin/*
ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway
ERROR: Could not fetch from any repository
FATAL: Could not fetch from any repository
hudson.plugins.git.GitException: Could not fetch from any repository
    ...
如果我在控制台中运行确切的git命令,它可以正常工作:

"C:\Program Files\Git\bin\git.exe" fetch -t git@codaset.com:xxx/xxx.git +refs/heads/*:refs/remotes/origin/*
我已尝试运行plink直接连接到GitHub:

plink -agent -v git@github.com
Looking up host "github.com"
...
Pageant is running. Requesting keys.
Pageant has 1 SSH-2 keys
Using username "git".
...
Authenticating with public key "rsa-key-20110121" from agent
...
Hi xxx! You've successfully authenticated, but GitHub does not provide
 shell access.
然后我尝试连接到codaset:

plink -agent -v git@codaset.co
m
Looking up host "codaset.com"
Pageant is running. Requesting keys.
Pageant has 1 SSH-2 keys
Using username "git".
...
Authenticating with public key "rsa-key-20110121" from agent
...
Opened channel for session
Server refused to allocate pty
Started a shell/command
Error: Command is required.
...
Server sent command exit status 255
Disconnected: All channels closed
因此,codaset的反应与git的反应略有不同。然而,我认为这可能是一个转移视线的问题,因为如果我尝试从hudson连接到一个标准git项目,我会遇到同样的错误

我还设置了Go服务器(CruiseControl原样),并在尝试从此处连接到git时出现类似错误:

ERROR: FATAL ERROR: Disconnected: No supported authentication methods available
ERROR: fatal: The remote end hung up unexpectedly
这让我觉得问题一定在于身份验证,而不是哈德逊的细节


一如既往,非常感谢您的帮助

hudson运行的机器是否与您可以成功获取的机器相同?如果没有,您可能还需要在该计算机上生成一个ssh密钥,并将其添加到您的github帐户中


不管怎样,第一个问题(除非我在你的问题中漏掉了)是哈德逊在哪里运行。

经过长时间的战斗,我通过从控制台运行哈德逊来解决这个问题,而不是作为一个服务。。。不太理想,但在星期五这个时候就足够了

这可能是权限问题。您可以在同一台机器上进行git克隆,但我猜您并不是以运行Hudson的同一用户的身份进行克隆的。请将su发送给该用户,然后重试。这可能会暴露问题。

当我通过Putty Plink.exe与被叫方交互时,收到一个SSH致命错误“服务器拒绝启动shell/命令”

我注意到问题是我的被叫方处于交互模式。例如,在我连接到被叫方后,被叫方要求我按任意键继续。在按下Enter键并键入命令后,我需要键入“exit”,然后按“Enter”退出SSH连接

为了使其与被叫方交互,我构建了如下命令:

注意:我在这里使用PowerShell代码作为示例

$Commands= @" 

    show status 
    exit 
    exit
"@
请注意,上述参数中的每一个换行符都表示“回车”键。 然后,我将Commands参数传递给plink.exe,如下所示:

$output = $Commands |.\Putty\plink.exe -auto_store_key_in_cache -l $UserName -pw $Password $CalledPartyIP -v 2>&1
它将向plink传递命令列表,并将详细结果输出到$output变量


希望这有帮助

谢谢你的回复。我可以从运行Hudson的同一台机器上成功获取/克隆。(事实上,我甚至试着手动克隆到我的hudson工作区,看看我是否能帮上忙。它不起作用…)ssh密钥往往是特定于用户的。如果您让它作为服务运行,很可能它是在不同的用户帐户下运行的(因此导致您的权限问题)。很好的一个,这很有意义,因为如果我从控制台运行hudson,它可以工作,但如果我作为服务运行hudson,它就不能工作。干杯