CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài viết trên blog CFSDN Hướng dẫn sử dụng Gitosis để cài đặt và xây dựng Git Server trên CentOS 6.3 này được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này thì nhớ like nhé.
Git là một hệ thống kiểm soát phiên bản phân tán. Khi sử dụng git, giao thức ssh thường được sử dụng để giao tiếp với máy chủ là tốc độ nhanh (dữ liệu sẽ được nén trước khi truyền, nhanh hơn HTTP). , an toàn và dễ đọc. Nhìn chung, có hai phương thức xác minh để khách hàng truy cập vào máy chủ thông qua SSH. Một là phương thức tên người dùng và mật khẩu, phương thức còn lại là phương thức xác thực khóa chung và khóa riêng sẽ thuận tiện hơn và không cần thiết. để nhập mật khẩu mỗi lần đăng nhập.
Khóa chung của máy khách đáng tin cậy sẽ được đặt trong tệp ~/.ssh/authorized_keys ở phía máy chủ. Để biết định dạng của tệp này, vui lòng tham khảo hướng dẫn sử dụng sshd man sshd. tham số lệnh. Điều này cho phép thực thi các lệnh sau mỗi khi người dùng sử dụng khóa chung này để xác minh. Bằng cách này, một số xử lý logic có thể được thực hiện.
Nói chung việc quản lý thư viện git cần có quyền kiểm soát. Làm thế nào để quản lý quyền của thư viện một cách thuận tiện và đơn giản? Authorized_keys là một ý tưởng chỉ định các tham số lệnh cụ thể. Sau khi mỗi người dùng được xác minh, logic liên quan trước tiên sẽ được thực thi để phát hiện xem người dùng hiện tại có quyền nhất định hay không. Vì vậy, có gitosis. Thay vì nói rằng gitosis là một hệ thống quản lý quyền git, tốt hơn nên nói rằng đó là một trình quản lý tệp ủy quyền.
Giải pháp:
Triển khai môi trường.
Ngôn ngữ sử dụng: centos6.3 x64 Git: git-1.7.1 Gitosis: Gitosis Gitweb: 1.7.1-3 OpenSSH Server: openssh-server-5.3p1 apache: httpd-2.4.4 python-setuptools: python-setuptools-0.6.10-3 Git server(centos6.3 x64): node2.example.com Git client(centos6.3 x64): node1.example.com 。
Cấu hình phía máy chủ
1. Đóng iptables và SELINUX.
。
# dịch vụ iptables dừng lại
# thiết lập thực thi 0
# vi /etc/sysconfig/selinux
---------------
SELINUX=bị vô hiệu hóa
---------------
。
2. Đồng bộ hóa thời gian.
。
# ntpdatecn.pool.ntp.org
。
3. Cài đặt Apache.
Cổng thông tin: http://www.zzvips.com/article/54969.htm.
4. Cài đặt OpenSSH.
1.yum cài đặt OpenSSH: .
# yum cài đặt openssh-server -y
2. Sửa đổi cấu hình máy chủ ssh
# vi /etc/ssh/sshd_config
———————————————————————————————
Cổng 22 # Thay đổi cổng đăng nhập bạn muốn
PermitRootLogin no # cấm người dùng root đăng nhập
StrictModes có # Kiểm tra xem người dùng và quyền của khóa có chính xác hay không. Nó được bật theo mặc định.
RSAAuthentication có # Kích hoạt xác thực RSA
PubkeyAuthentication có # Kích hoạt xác thực khóa chung
Xác thực mật khẩu có # Kích hoạt xác thực mật khẩu, được bật theo mặc định.
ServerKeyBits 1024 # Chuyển sang trạng thái này sau khi sửa đổi, thay đổi cường độ ServerKey thành 1024 bit
PermitEmptyPasswords no # Sau khi sửa đổi, nó sẽ trở thành trạng thái này và việc đăng nhập bằng mật khẩu trống đều bị cấm.
———————————————————————————————
3. Khởi động lại dịch vụ:
# /etc/init.d/sshd khởi động lại
。
5. Cài đặt Git.
。
# yum cài đặt git-core -y
。
6. Cài đặt Gitosis.
1. Cài đặt gói python-setuptools phụ thuộc của Gitosis.
# yum cài đặt python-setuptools -y
。
2. Cài đặt Gitosis.
#đĩa ~
# mkdir nguồn
# cd nguồn
# git clone https://github.com/tv42/gitosis.git
# cd gitosis
# python setup.py cài đặt
。
3. Tạo người dùng hệ thống cho bệnh gitosis.
# useradd -m git
# mật khẩu git
。
4. Chạy bệnh gitosis.
(1) Tải lên hoặc sao chép khóa chung do quản trị viên tạo lên máy chủ. Khóa chung ở đây cần được tạo bằng lệnh ssh-keygen dưới quyền quản trị viên máy chủ git.
#nước - đi
Đảm bảo rằng trang web có quyền hiển thị nội dung của kho.
# chmod -R 755 /trang chủ/git
# ssh-keygen -t rsa
# cp ~/.ssh/id_rsa.pub /tmp
。
(2).Khởi tạo gitosis.
Nhập thư mục chứa id_rsa.pub đã sao chép.
# cd /tmp
# gitosis-init < id_rsa.pub
Tại thời điểm này, thư mục cấu hình và kho gitosis sẽ được tạo trong thư mục /home/git.
# cd /home/git
# ll
-------------------------------------------------- --------------
drwxr-xr-x 2 git git 4096 12 tháng 8 13:39 gitosis
drwxr-xr-x 4 git git 4096 12 tháng 8 13:39 kho lưu trữ
-------------------------------------------------- -------------
。
(3). Chuyển về người dùng (root) hiện tại.
。
# thoát
。
(4) .Cấu hình quyền.
Nếu muốn người khác có thể sao chép gitosis-admin.git, bạn cần thực hiện các thao tác sau: .
# chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
Tại thời điểm này, quá trình cài đặt gitosis đã hoàn tất và quản trị viên có thể vận hành cấu hình liên quan của nó rồi gửi lên máy chủ.
。
(5) Bây giờ bạn có thể thử đăng nhập vào máy chủ thông qua SSH bằng cách sử dụng khóa chung đã khởi tạo Gitosis. Bạn sẽ thấy nội dung như sau: .
#nước - đi
$ ssh git@127.0.0.1
------------------------------------------------
Yêu cầu phân bổ PTY không thành công trên kênh 0
LỖI:gitosis.serve.main:Cần có SSH_ORIGINAL_COMMAND trong môi trường.
Kết nối tới gitserver đã đóng.
------------------------------------------------
Giải thích Gitosis đã nhận ra danh tính của người dùng, nhưng vì không có lệnh Git nào được chạy nên nó đã cắt kết nối. Vì vậy, bây giờ hãy chạy lệnh Git thực tế - sao chép kho lưu trữ kiểm soát Gitosis: Sao chép kho lưu trữ git trên máy tính cục bộ của bạn.
# cd /tmp
# git clone git@gitserver:gitosis-admin.git
Điều này sẽ nhận được một thư mục làm việc có tên gitosis-admin, chủ yếu bao gồm hai phần: màu đỏ là cấu hình kho git và màu xanh là các tệp được lưu trong kho thực tế.
# cd gitosis-admin
# ll-a
-------------------------------------------------- --------
tổng cộng 20
drwxr-xr-x 4 git git 4096 12 tháng 8 13:21 .
drwxr-xr-x 4 git git 4096 12 tháng 8 13:23 ..
drwxr-xr-x 8 git git 4096 12 tháng 8 13:22 .git
-rwxr-xr-x 1 git git 157 ngày 12 tháng 8 13:21 gitosis.conf
drwxr-xr-x 2 git git 4096 12 tháng 8 13:20 keydir
-------------------------------------------------- ---------
Thao tác trên tương đương với việc khởi tạo người dùng git hệ thống và trở thành quản trị viên gitosis, đồng thời sử dụng quyền quản trị viên của nó để sao chép cục bộ kho gitosis-admin.
。
5. Thêm người dùng cục bộ john và bộ phận kiểm tra kho vào bệnh gitosis và làm việc với quản trị viên git để quản lý bệnh gitosis.
1. Người dùng john thêm và gửi id_rsa.pub tới git.
# là -
# useradd john & passwd john
# su - john
# ssh-keygen -t rsa
-------------------------------------------------- ---------
Tạo cặp khóa rsa công khai/riêng tư.
Nhập tệp để lưu khóa (/home/john/.ssh/id_rsa):
Đã tạo thư mục '/home/john/.ssh'.
Nhập mật khẩu (để trống nếu không có mật khẩu):
Nhập lại mật khẩu tương tự:
Thông tin nhận dạng của bạn đã được lưu trong /home/john/.ssh/id_rsa.
Khóa công khai của bạn đã được lưu trong /home/john/.ssh/id_rsa.pub.
-------------------------------------------------- ---------
# cp /home/john/.ssh/id_rsa.pub /tmp
2. Quản trị viên gitosis git gán quyền john.
#nước - đi
# dự án mkdir
# cd ~/dự án
# git clone git@node2.example.com:gitosis-admin
# cd gitosis-admin
# mèo gitosis.conf
------------------------------------------------
[bệnh thối rữa]
[nhóm gitosis-admin]
có thể ghi = gitosis-admin
thành viên = git@node2.example.com
------------------------------------------------
# ls keydir/
-------------------------
git@node2.example.com.pub
-------------------------
# cp /tmp/id_rsa.pub keydir/john.pub
# buộc gitosis.conf
——————————————————————————————————————
[bệnh thối rữa]
[nhóm gitosis-admin]
có thể ghi = gitosis-admin
thành viên = git@node2.example.com
[kiểm tra nhóm]
có thể ghi = thử nghiệm
thành viên = git@node2.example.com john
——————————————————————————————————————
# git thêm .
# git commit -am "thêm thành viên john và dự án foo"
# git đẩy
。
3. Người dùng git thêm thử nghiệm dự án.
。
#nước - đi
# cd ~/dự án
# kiểm tra mkdir
# kiểm tra cd
# git khởi tạo
# echo "Xin chào thế giới." > hello.txt
# git thêm hello.txt
# git commit -am 'lần commit đầu tiên'
# git remote add origin git@node2.example.com:test.git
# git push origin chủ
。
4. Người dùng john sao chép kiểm tra và sửa đổi hello.txt.
# su - john
# git clone git@node2.example.com:test.git
# kiểm tra cd
# ngày >> hello.txt
# git commit -am 'thêm thời gian vào hello.txt' && git push
。
Toàn bộ quá trình được chia thành
1. Để quản lý quyền của người dùng gitosis bằng cách sửa đổi gitosis-admin, bạn cần sao chép cục bộ, sau đó sửa đổi tệp cấu hình và cuối cùng thêm tính năng đẩy để đẩy kết quả đến điều khiển từ xa nhằm thực hiện sửa đổi quyền.
2. Thêm người dùng hệ thống, tạo khóa chung của người dùng và sao chép nó vào keydir để đảm bảo rằng người dùng có quyền thực hiện git và các hoạt động liên quan khác.
3. Đăng nhập vào tài khoản người dùng để thực hiện các thao tác liên quan đến git Sau khi sửa đổi, cam kết và đẩy đến máy chủ để hoàn tất cấu hình cấp phép kho.
7. Cài đặt gitweb.
1. Đầu tiên chúng ta cần mã nguồn của Git, đi kèm với GitWeb và có thể tạo các tập lệnh CGI tùy chỉnh: .
# git clone git://git.kernel.org/pub/scm/git/git.git
# cd đi/
# làm cho GITWEB_PROJECTROOT="/home/git/repositories" tiền tố=/usr gitweb
# cp -rf gitweb /usr/local/apache2/htdocs/
Lưu ý: Cho lệnh biên dịch biết vị trí của kho lưu trữ Git bằng cách chỉ định biến GITWEB_PROJECTROOT.
。
2. Đặt Apache để chạy tập lệnh ở chế độ CGI và thêm cấu hình Virtualhost:
(1). Tải tệp cấu hình vhost của Apache.
# vi /usr/local/apache2/conf/httpd.conf
Tìm kiếm dòng chứa httpd-vhosts và xóa nhận xét trên dòng (2). Tải mô-đun cgid để hỗ trợ ngôn ngữ Perl.
# vi /usr/local/apache2/conf/httpd.conf
Tìm kiếm dòng chứa mod_cgid.so và xóa nhận xét khỏi dòng (3).
# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
Thêm cấu hình sau
————————————————————————————————————————————
Tên máy chủ git.example.com
DocumentRoot / usr / local / apache2 / htdocs / gitweb
Tùy chọn +ExecCGI
Cho phép ghi đè tất cả
lệnh cho phép, từ chối
Cho phép từ tất cả
AddHandler cgi-script cgi pl
Chỉ mục thư mục gitweb.cgi
|
————————————————————————————————————————————
(4). Sau khi cài đặt mô-đun Perl Time/HiRes.pm và mở trang web lần đầu tiên, nó báo Không thể định vị Time/HiRes.pm trong @INC.... Giải pháp lỗi.
# yum cài đặt perl-devel perl-CPAN -y
# perl -MCPAN -e vỏ
cpan[2]> cài đặt Thời gian::HiRes
cpan[3]> thoát
(5). Khởi động lại dịch vụ Apache.
# /usr/local/apache2/bin/apachectl khởi động lại
(6). Sửa đổi HOST cục bộ và mở trang gitweb http://git.example.com.
。


。


Bạn đã hoàn tất....
Cuối cùng, bài viết hướng dẫn sử dụng Gitosis để cài đặt và xây dựng Git Server trên CentOS 6.3 kết thúc tại đây. Nếu bạn muốn biết thêm về hướng dẫn sử dụng Gitosis để cài đặt và xây dựng Git Server trên CentOS 6.3, vui lòng tìm kiếm các bài viết về CFSDN hoặc. tiếp tục duyệt các bài viết liên quan, tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!