2011-01-21 88 views
5

我已經打了這一天了一天以上,這讓我很生氣!哈德森不會從Git中獲取

  • 我有一個Win7的電腦, 上安裝了Git和選擇的puttygen選項上 安裝。
  • 我使用PuttyGen生成了ssh密鑰 ;我已將ssh 密鑰添加到我的Git帳戶,並鏈接了Pageant中的 私鑰。
  • 我已經設置了 GIT_SSH指向我的膩子 plink.exe。
  • 我用膩子連接 codaset & git讓他們接受 作爲已知的主機。

我可以從控制檯克隆,但哈德森失敗:

Fetching upstream changes from [email protected]:xxx/xxx.git 
[workspace] $ "C:\Program Files\Git\bin\git.exe" fetch -t [email protected]: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 [email protected]:xxx/xxx.git +refs/heads/*:refs/remotes/origin/* 

我已經嘗試運行plink直接連接到GitHub:

plink -agent -v [email protected] 
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 [email protected] 
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略有不同的響應。不過,我認爲這可能是一個紅鯡魚,因爲如果我嘗試從哈德森連接到標準的git項目,我會得到同樣的錯誤。

我還設置了圍棋服務器(CruiseControl的作爲是),並獲得試圖連接從這裏與git當類似的錯誤:這讓我覺得這個問題必須位於與認證

ERROR: FATAL ERROR: Disconnected: No supported authentication methods available 
ERROR: fatal: The remote end hung up unexpectedly 

,而比哈德遜的細節...?

一如既往,任何幫助非常感謝!

回答

2

這可能是一個權限問題。 可以在同一臺機器上克隆克隆,但我的猜測是,你沒有把它作爲運行Hudson的用戶。 su給那個用戶,然後再試一次。它可能會暴露問題。

+1

不錯,如果我從控制檯運行哈德森,它的工作原理是合理的,但如果我將哈德森作爲服務運行,則不會。乾杯! – laura 2011-01-22 12:30:32

0

hudson是否可以在同一臺機器上運行,您可以從中成功獲取?如果沒有,您可能需要在上生成一個ssh密鑰機器,並將其添加到您的github帳戶。

無論哪種方式,第一個問題(除非我錯過了你的問題)是你運行哈德森的地方。

+0

感謝您的回覆。我可以成功地從Hudson運行的同一臺機器上獲取/克隆。 (實際上,我甚至試圖手動克隆到我的哈德森工作區,以查看我是否可以幫助解決問題。它不起作用...) – laura 2011-01-21 16:36:53

0

經過漫長的戰鬥,我通過從控制檯運行哈德森而不是作爲服務解決了這個問題......不理想,但是在這個星期五的這個時候已經足夠好了!

+1

ssh鍵往往是用戶特定的。如果您將它作爲服務運行,它很可能會在不同的用戶帳戶下運行(因此導致您的權限問題)。 – jerhinesmith 2011-01-21 18:43:51

0

當我通過Putty Plink與我的被叫方交互時,我收到SSH致命錯誤「服務器拒絕啓動shell /命令」。exe

我注意到問題是我的被叫方處於交互模式。例如,在我連接到被叫方後,我的被叫方要求我按任意鍵繼續。按Enter鍵並輸入命令後,我需要輸入「exit」,然後按「Enter」退出SSH連接。

,使其與被叫方進行互動,我構建了我的命令如下:

注:我使用PowerShell代碼在這裏舉例。

$Commands= @" 

    show status 
    exit 
    exit 
"@ 

請注意,上述參數中的每個換行符代表「Enter」鍵。 然後,我通過命令參數,如下plink.exe:

$output = $Commands |.\Putty\plink.exe -auto_store_key_in_cache -l $UserName -pw $Password $CalledPartyIP -v 2>&1 

它將傳遞命令的列表來PLINK和輸出的詳細結果到$輸出變量。

希望這會有所幫助!