2012-06-06 40 views
6

Tôi đã tạo thành công gitolite-admin.git repo trên máy chủ (nói) 10.107.105.13. Tôi có thể sao chép repo này trên máy cục bộ của tôi (nói) 10.14.42.7 bằng cách phát hành git clone [email protected]:gitolite-admin. Tôi phải thêm một số dòng trong tệp .ssh/config để đảm bảo rằng khóa cá nhân chính xác được sử dụng.người dùng được yêu cầu nhập mật khẩu khi sử dụng gitolite

Sau đó, tôi đã thêm người dùng dilawar vào conf/gitolite.conf tệp và khóa thích hợp dilawar.pub đến keys thư mục. Tôi đã thêm và cam kết cam kết này với repo gitolite-admin. Tôi cũng đã thêm một mục nhập khác trong tệp .ssh/conf để sử dụng khóa riêng tư chính xác. Nhưng khi tôi cố gắng làm git clone [email protected]:testing, gitolite yêu cầu mật khẩu. Tôi theo ấn tượng rằng tôi không phải tạo ra dilawar người dùng trên 10.107.105.13. Tôi đã kiểm tra bằng cách đăng nhập vào máy chủ lưu trữ testing.git tồn tại cũng như khóa công khai dilawar.pub đã được thêm vào .ssh/authorized_keys.

Tôi cũng đã thử ssh -vvvv [email protected] để kiểm tra xem tệp chính xác có đang được cung cấp hay không. Đây là tập tin .ssh/conf của tôi.

HostName 10.107.105.13 
    User gitolite 
    IdentityFile ~/.ssh/gitolite 

Host 10.107.105.13 
    HostName 10.107.105.13 
    User dilawar 
    IdentityFile ~/.ssh/id_rsa 

Tôi đang làm gì sai?

Trả lời

8

Trong tập tin cấu hình của bạn, tôi thấy:

User dilawar 

Đó là sai. liên lạc ssh với máy chủ gitolite luôn được thực hiện với cùng một tài khoản (ở đây gitolite).
Những thay đổi nào là khóa riêng được sử dụng, điều này sẽ giúp gitolite xác định danh tính của bạn.

gì bạn ~/.ssh/config tập tin sẽ giống như là:

Host admin 
    HostName 10.107.105.13 
    User gitolite 
    IdentityFile ~/.ssh/gitolite 

Host dilawar 
    HostName 10.107.105.13 
    User gitolite 
    IdentityFile ~/.ssh/id_rsa 

Đối với nhân bản gitolite-admin, bạn sẽ sử dụng:

git clone admin:gitolite-admin 

Đối với nhân bản một repo dilawar có quyền truy cập vào:

git clone dilawar:aRepo 

Xem thêm tại "Gitolite: adding user not working, and DENIED by fallthru when cloning as root?".
Xem thêm "how gitolite uses ssh"

Thêm khóa công khai của bạn để tập ~git/.ssh/authorized_keys của máy chủ là cách ssh sử dụng pubkeys để xác thực người dùng.
Giả sử [email protected] đang cố đăng nhập bằng [email protected].
gì bạn phải làm là lấy file ~sita/.ssh/id_rsa.pub cho người dùng sita vào công việc trạm và thêm nội dung của nó (nhớ nó chỉ có một dòng) để ~git/.ssh/authorized_keyscho người dùng git trên máy chủ.

Tệp authorized_keys có thể có nhiều khóa công cộng (từ nhiều người khác nhau) được thêm vào để bất kỳ ai trong số họ cũng có thể đăng nhập vào [email protected].

3

Tôi đã làm cho nó hoạt động bằng cách sao chép kho lưu trữ bằng tên người dùng gitolite.

git clone [email protected]:repo 

Nếu thêm chìa khóa thành công thì kéo và đẩy tiếp tục sẽ diễn ra suôn sẻ.

Tôi chấp nhận câu trả lời của VOMC là câu trả lời hay hơn.

+0

Không thấy câu trả lời của bạn vào thời điểm đó. 1 cho phản hồi. Tôi đã cải thiện định dạng trên câu trả lời của mình. – VonC

0

Tôi phải chỉnh sửa /etc/ssh/sshd_config và thêm git (người dùng) vào dòng bắt đầu bằng AllowUsers. Sau đó, tôi đã phải thêm git vào một nhóm sysadmin cũng được cho phép trên dòng sshd_config bắt đầu bằng AllowGroups.

Đừng quên khởi động lại trình nền ssh với sudo service ssh restart.

Lưu ý: Tôi không phải ssh-copy-id hoặc thêm khóa công khai để /home/git/.ssh/authorized_keys như đề xuất trước

0

tôi đã cùng một vấn đề, với một giải pháp khác nhau vì cấu hình của tôi (nhà phát triển gitolite của khuyến cáo chống lại điều này btw.) . Tôi thiết lập người dùng gitolite của mình là “git” vì vậy tôi cần phải du git clone [email protected]:repo.git

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