Có lẽ sự hỗ trợ của GitHub cho các khóa triển khai là những gì bạn đang tìm kiếm? Để trích dẫn trang đó:
Khi nào tôi nên sử dụng khóa triển khai?
Đơn giản, khi bạn có một máy chủ cần kéo quyền truy cập vào một repo riêng. Khóa này được đính kèm trực tiếp vào kho lưu trữ thay vì tài khoản người dùng cá nhân.
Nếu đó là những gì bạn đã thử và nó không hoạt động, bạn có thể muốn cập nhật câu hỏi của mình với nhiều chi tiết hơn về các URL đang được sử dụng, tên và vị trí của các tệp chính, v.v.
Bây giờ là phần kỹ thuật: Làm thế nào để sử dụng khóa SSH của bạn với Jenkins?
Nếu bạn có một jenkins
người dùng unix, bạn có thể lưu khóa triển khai của mình vào ~/.ssh/id_rsa
. Khi Jenkins cố gắng sao chép repo qua ssh, nó sẽ cố gắng sử dụng khóa đó.
Trong một số thiết lập, bạn không thể chạy Jenkins như một tài khoản người dùng riêng và cũng có thể không thể sử dụng vị trí khóa ssh mặc định ~/.ssh/id_rsa
. Trong các trường hợp như vậy, bạn có thể tạo khóa ở một vị trí khác, ví dụ: ~/.ssh/deploy_key
và định cấu hình ssh
để sử dụng khóa đó với một mục trong ~/.ssh/config
:
Host github-deploy-myproject
HostName github.com
User git
IdentityFile ~/.ssh/deploy_key
IdentitiesOnly yes
Vì tất cả những gì bạn xác thực cho tất cả các kho lưu trữ Github bằng cách sử dụng git@github.com
và bạn không muốn sử dụng khóa trên cho tất cả các kết nối của mình với Github, chúng tôi đã tạo một bí danh máy chủ github-triển khai-myproject . URL bản sao của bạn bây giờ trở thành
git clone github-deploy-myproject:myuser/myproject
và đó cũng là những gì bạn đặt làm URL kho lưu trữ vào Jenkins.
(Lưu ý rằng bạn không được đặt ssh: // ở phía trước để làm việc này.)