2012-04-19 36 views
20

Tôi đang trên EC2 với amazon cơ sở ami linux- Tôi đã cài đặt Jenkins nhưng khi tôi đi đến kéo repo từ github Tôi đưa các lỗi sau:Jenkins/hudson không thể kết nối github repo

Building in workspace /var/lib/jenkins/workspace/build social 
Checkout:build social//var/lib/jenkins/workspace/build social - [email protected] 
Using strategy: Default 
Cloning the remote Git repository 
Cloning repository origin 
ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:adulion/.git 
hudson.plugins.git.GitException: Could not clone [email protected]:adulion/.git 
    at hudson.plugins.git.GitAPI.clone(GitAPI.java:245) 
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1117) 
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1059) 
    at hudson.FilePath.act(FilePath.java:832) 
    at hudson.FilePath.act(FilePath.java:814) 
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1059) 
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1218) 
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:581) 
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:470) 
    at hudson.model.Run.run(Run.java:1421) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) 
    at hudson.model.ResourceController.execute(ResourceController.java:88) 
    at hudson.model.Executor.run(Executor.java:238) 
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin [email protected]:adulion/.git /var/lib/jenkins/workspace/build social" returned status code 128: 
stdout: Cloning into /var/lib/jenkins/workspace/build social... 

stderr: Host key verification failed. 
fatal: The remote end hung up unexpectedly 

Tôi đã tạo ra một khóa cho người dùng hiện tại đã cài đặt jenkins và đã quản lý để sao chép repo bằng cách sử dụng dòng lệnh git nhưng jenkins thì không.

tôi đã sao chép các tập tin ~/.ssh vào /var/lib/jenkins/.ssh

Tôi đã thêm github để đội chủ nhà biết và tôi đã chạy ra khỏi các giải pháp để thử. Có ai biết tôi đang đi đâu không? Có cách nào để có được jenkins để hiển thị các khóa công khai nó đang sử dụng và tôi có thể gỡ lỗi nếu nó sử dụng đúng?

Tôi đã gỡ bỏ tên của repo vì nó một repo tin

Trả lời

29

Lỗi này có vẻ là: xác minh khóa máy chủ không thành công.

Bạn phải đăng nhập vào máy chủ Jenkins của bạn như là người dùng Jenkins và chạy:

ssh [email protected] 

Sau đó trả lời có tới dấu nhắc về host key. Điều này chỉ cần được thực hiện một lần.

Hoặc bạn có thể thêm "StrictHostKeyChecking no" vào ~ jenkins/.ssh/config.

+2

'ssh git @ github.com' không nhắc về khóa máy chủ, thay vì lặp lại yêu cầu phân bổ _PTY không thành công trên kênh 0/Hi $ {TÊN}! Bạn đã xác thực thành công, nhưng GitHub không cung cấp quyền truy cập shell._. 'StrictHostKeyChecking no', tuy nhiên, làm việc như một sự quyến rũ. –

+0

Tôi * nghĩ rằng * thêm github vào known_hosts cũng sẽ hoạt động? ssh-keyscan -H http://github.com >> ~/.ssh/known_hosts – paulecoyote

+0

Nếu jenkins của bạn là không đầu, một cách thuận tiện khác là ssh [email protected] từ một người dùng khác, và sau đó sao chép .ssh/know_hosts tập tin ví dụ ~ jenkins/.ssh /. Ngoài ra hãy chắc chắn rằng bạn đã biết jenkins: jenkins cho tất cả các tệp trong ~ jenkins/.ssh –

5

Tôi đang sử dụng một máy Jenkins duy nhất để kiểm tra nhiều kho github và đã có vấn đề tương tự khi cài đặt nó lên. Những gì tôi đã làm cuối cùng là cấu hình một tệp cấu hình SSH cho jenkins để SSH tự động biết tệp id nào liên kết với mỗi kho lưu trữ.

/var/lib/jenkins/.ssh/config:

Host github-ABC 
    HostName github.com 
    User git 
    IdentityFile /var/lib/jenkins/.ssh/id_rsa_ABC 

Trong cấu hình dự án Jenkins thuộc quyền quản lý mã nguồn, tôi đã sử dụng điều này như tên kho:

[email protected]:user/repo.git 

Cuối cùng, Tôi sử dụng khóa công cộng SSH làm khóa triển khai trong kho lưu trữ github.

+0

làm tôi cần phải tải các tập tin cấu hình ở đâu đó? –

+0

Không, SSH sẽ tự động xem ~/.ssh/config khi kết nối. [Tài liệu] (http://linux.die.net/man/5/ssh_config) – mpdaugherty

5

Ông sau giúp tôi:

Login dưới Jenkins

sudo su jenkins 

Sao chép chìa khóa github của bạn vào thư mục Jenkins .ssh

cp ~/.ssh/id_rsa_github* /var/lib/jenkins/.ssh/ 

Raname các phím

mv id_rsa_github id_rsa 
mv id_rsa_github.pub id_rsa.pub 
4

1) Chuyển đổi người dùng int o chiếm Jenkins của bạn

su jenkins 

2) Tạo chìa khóa mà không có một cụm từ mật khẩu

3) ssh [email protected]

đó đã làm việc một cách hoàn hảo đối với tôi.

Bạn có thể cần phải tạo một mật khẩu cho tài khoản Jenkins, nếu có sử dụng sudo passwd jenkins

0

Nếu bạn đăng nhập như Jenkins bạn có thể làm

ssh -i ~/.ssh/id_rsa git @ github. com

nơi ~/.ssh/id_rsa là path/to/your/ssh/chìa khóa và nó sẽ nhắc nhở cho các mật khẩu và thêm vào known_hosts nộp

-1

bạn cần phải thêm phím ssh của Jenkins để bạn github người dùng.

Generate ssh key

Go to:

Github->Settings(Top right)->SSH Keys(Left Pane)->Add SSH Key

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