2011-01-21 39 views
5

Tôi đã đánh cái này trong hơn một ngày nay, điều đó khiến tôi phát điên!Hudson sẽ không tìm nạp từ Git

  • Tôi đã cài đặt Git trên máy tính Win7, và chọn tùy chọn PuttyGen trên cài đặt.
  • Tôi đã tạo các khóa ssh bằng PuttyGen; Tôi đã thêm khóa ssh vào tài khoản Git của mình và liên kết khóa cá nhân trong Cuộc thi.
  • Tôi đã thiết lập GIT_SSH để trỏ đến putty của tôi plink.exe.
  • Tôi đã sử dụng Putty để kết nối với mã số & git để cho phép chúng được chấp nhận là máy chủ đã biết.

tôi có thể sao chép từ giao diện điều khiển, nhưng hudson thất bại:

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 
    ... 

Nếu tôi chạy lệnh git chính xác trong một giao diện điều khiển, nó hoạt động tốt:

"C:\Program Files\Git\bin\git.exe" fetch -t [email protected]:xxx/xxx.git +refs/heads/*:refs/remotes/origin/* 

Tôi đã cố gắng chạy plink để kết nối trực tiếp với 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. 

Sau đó tôi đã thử kết nối với 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 

Vì vậy, phản hồi hơi khác với codaset so với git. Tuy nhiên, tôi nghĩ rằng điều này có thể là một cá trích đỏ, như tôi nhận được cùng một lỗi nếu tôi cố gắng kết nối với một dự án git tiêu chuẩn từ hudson.

Tôi cũng thiết lập Go Server (CruiseControl như là), và nhận được một lỗi tương tự khi cố gắng kết nối với git từ đây:

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

Mà làm cho tôi nghĩ rằng vấn đề phải nằm với xác thực, chứ không phải hơn các chi tiết hudson ...?

Như mọi khi, mọi trợ giúp đều được đánh giá cao!

Trả lời

2

Đây có thể là vấn đề về quyền. Bạn có thể git clone trên cùng một máy, nhưng tôi đoán là bạn đã không làm điều đó khi cùng một người dùng chạy Hudson. su cho người dùng đó, sau đó thử lại. Nó có thể phơi bày vấn đề.

+1

Đẹp, có ý nghĩa vì nó hoạt động nếu tôi chạy hudson từ giao diện điều khiển, nhưng không phải nếu tôi chạy hudson như một dịch vụ. Chúc mừng! – laura

0

Có phải hudson đang chạy trên cùng một máy mà bạn có thể tìm nạp thành công không? Nếu không, bạn có thể cần phải tạo một khóa ssh trên rằng máy cũng như thêm nó vào tài khoản github của bạn.

Dù bằng cách nào, câu hỏi đầu tiên (trừ khi tôi bỏ lỡ câu hỏi của bạn) là nơi bạn có chạy hudson.

+0

Cảm ơn bạn đã trả lời. Tôi có thể lấy/sao chép thành công từ cùng một máy mà Hudson đang chạy. (Trong thực tế, tôi thậm chí đã cố gắng tự nhân bản vào không gian làm việc hudson của tôi để xem nếu tôi có thể giúp mọi thứ cùng. Nó không hoạt động ...) – laura

0

Sau một trận chiến dài, tôi đã giải quyết vấn đề này bằng cách chạy hudson từ bảng điều khiển, thay vì làm dịch vụ ... Không lý tưởng, nhưng vào thời điểm này vào thứ Sáu, nó đủ tốt!

+1

khóa ssh có xu hướng là người dùng cụ thể. Nếu bạn có nó chạy như một dịch vụ, nó khá có thể nó đã được chạy dưới một tài khoản người dùng khác nhau (do đó gây ra vấn đề quyền của bạn). – jerhinesmith

0

Tôi đã nhận được lỗi lỗi nghiêm trọng SSH "máy chủ từ chối bắt đầu trình bao/lệnh" khi tôi tương tác với bên được gọi thông qua Putty Plink.exe

Tôi nhận thấy sự cố là bên được gọi của tôi đang ở chế độ tương tác. Ví dụ, sau khi tôi kết nối với bên được gọi, bên được gọi của tôi đã yêu cầu tôi nhấn bất kỳ phím nào để tiếp tục. Sau khi tôi nhấn phím Enter và gõ lệnh, tôi cần gõ "exit", sau đó nhấn "Enter" để thoát khỏi kết nối SSH.

Để làm cho nó tương tác với bên bị gọi, tôi xây dựng lệnh của tôi như sau:

Ghi chú: Tôi đang sử dụng mã PowerShell là một ví dụ ở đây.

$Commands= @" 

    show status 
    exit 
    exit 
"@ 

Lưu ý rằng mỗi ngắt dòng trong tham số ở trên đại diện cho phím "Enter". Sau đó, tôi chuyển giá trị lệnh cho plink.exe như sau:

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

Nó sẽ vượt qua một danh sách các lệnh để Plink và đầu ra kết quả tiết vào biến $ đầu ra.

Hy vọng điều này sẽ hữu ích!

Các vấn đề liên quan