Máy chủ Git lưu trữ kho lưu trữ (repository) của một dự án, nơi chứa mã nguồn và các tệp cốt lõi khác. Thông thường, bạn có thể tin tưởng vào các dịch vụ lưu trữ Git nổi tiếng toàn cầu như GitHub. Tuy nhiên, trong một số trường hợp, bạn nên thiết lập máy chủ Git riêng để tăng cường quyền riêng tư, khả năng tùy chỉnh và bảo mật.
Hãy cùng FUNiX tìm hiểu cách bạn có thể thiết lập máy chủ Git riêng trên Linux.
Điều kiện để thiết lập máy chủ Git
Trước khi bắt đầu thiết lập máy chủ Git riêng, bạn cần có quyền truy cập vào một máy dự phòng hoặc đăng ký với các nhà cung cấp dịch vụ đám mây. Điều này rất quan trọng vì bạn sẽ thiết lập máy dự phòng để hoạt động như một máy chủ Git mà bạn sẽ kết nối từ máy cục bộ và thực hiện các hoạt động Git.
Mặc dù không có yêu cầu hệ thống rõ ràng, nhưng một GB RAM là đủ để máy chủ Git hoạt động. Thêm vào đó, hãy đảm bảo rằng bạn có bản phân phối Linux đang chạy trên máy.
Bước 1: Tải và cài đặt Git trên máy chủ Linux
Bạn cần phải cài đặt Git trên máy chủ Linux của mình như một bước sơ bộ. Kích hoạt một terminal và sử dụng trình quản lý gói của bản phân phối Linux của bạn để cài đặt Git:
Trên các bản phân phối Debian/Ubuntu:
sudo apt install git
Trên các bản phân phối dựa trên Arch:
sudo pacman -S git
Trên CentOS/RHEL/Fedora:
sudo dnf install git
Sau khi Git được cài đặt trên hệ thống, thực hiện các bước tiếp theo để định cấu hình hệ thống Linux để lưu trữ các kho lưu trữ Git của bạn dưới dạng máy chủ Git.
Bước 2: Thiết lập tài khoản người dùng Git
Kết nối với máy chủ Linux thông qua SSH, RDP hoặc bất kỳ giao thức truy cập từ xa nào khác. Trong trường hợp bạn đang sử dụng một máy tính dự phòng làm máy chủ, hãy bật nó lên và tạo một tài khoản người dùng mới để xử lý kho của bạn.
ssh username@address
sudo useradd git
Sau khi người dùng mới được tạo, hãy chuyển sang người dùng đó bằng lệnh su:
su git
Việc tạo tài khoản người dùng git chuyên dụng là một cách an toàn đảm bảo các máy khách kết nối với máy chủ Git của bạn sẽ bị hạn chế khả năng hiển thị và quyền truy cập vào các tài nguyên trên máy. Điều này cho phép bạn hợp tác một cách an toàn trong các dự án nhóm nơi nhiều thành viên trong nhóm sẽ truy cập vào máy chủ của bạn.
Bước 3: Tạo thư mục .ssh và thêm khóa được ủy quyền
Việc tạo một thư mục .ssh là điều cần thiết để lưu trữ các khóa công khai và các dữ liệu thiết yếu khác chỉ định ai có quyền truy cập vào máy chủ Git này. Để bắt đầu, hãy đăng nhập vào tài khoản người dùng git mà bạn đã tạo trước đó, tạo thư mục .ssh và chỉ người dùng đó quyền truy cập:
ssh git@address
mkdir .ssh
chmod 700 .ssh/
touch .ssh/authorized_keys
Bảo mật quyền truy cập thư mục bằng lệnh chmod để đảm bảo rằng không ai ngoài bạn có thể thực hiện thay đổi đối với nó. Đi đến thư mục .ssh và tạo một tệp mới “allow_keys” bằng cách sử dụng lệnh touch.
cd .ssh
ssh-keygen -t rsa #only run this command if you DO NOT have an id_rsa.pub file
cat id_rsa.pub
Bạn sẽ cần cập nhật tệp này bằng khóa công khai SSH của các máy khách mà bạn muốn cấp quyền truy cập vào máy chủ Git. Tạm dừng phiên SSH và mở tệp .ssh/id_rsa.pub trong máy cục bộ bằng trình soạn thảo văn bản hoặc lệnh cat. Tệp này chứa khóa được mã hóa công khai của bạn, khi được ghi vào tệp allow_keys, khóa này sẽ cấp cho bạn quyền truy cập vào máy chủ Git mà không cần mật khẩu.
cd .ssh
vi authorized_keys
Sao chép khóa công khai và tạo kết nối SSH mới tới máy chủ Git. Đi đến thư mục .ssh, mở tệp ủy quyền_key bằng trình soạn thảo văn bản và dán khóa công khai. Lưu các thay đổi và thoát.
Từ đó, bạn sẽ có thể kết nối với máy chủ mà không cần mật khẩu. Hãy lặp lại bước này cho từng máy sẽ kết nối với máy chủ.
Bước 4: Tạo một thư mục để lưu trữ tất cả kho lưu trữ của bạn
Truy cập máy chủ Linux và tạo một thư mục hoặc sử dụng một thư mục có sẵn làm thư mục gốc (root directory). Đây sẽ là thư mục mà tất cả các kho của bạn sẽ được lưu trữ. Đây là một cách hiệu quả để tổ chức các dự án gọn gàng hơn.
mkdir directory_name
Sau khi tạo thư mục, hãy chuyển sang bước cuối cùng để hoàn tất việc thiết lập máy chủ Git.
Bước 5: Thêm dự án mới
Bây giờ bạn đã hoàn tất việc thiết lập máy chủ Git. Bạn chỉ cần khởi tạo kho lưu trữ và thêm nguồn gốc từ xa vào máy cục bộ. Di chuyển vào thư mục mẹ bằng lệnh cd và tạo một thư mục dự án .git:
cd parent_directory
mkdir new_project.git
Bây giờ, khởi tạo kho lưu trữ git trần:
git init --bare
Với kho lưu trữ được khởi tạo, đã đến lúc thêm nguồn (origin) từ xa trên máy cục bộ của bạn:
git remote add origin name git@address:new_project.git
Đó là tất cả những gì bạn cần làm ở phía máy chủ. Giờ đây, bất kỳ ứng dụng khách nào được xác thực đều có thể thực hiện các hoạt động Git thông thường như đẩy, kéo, hợp nhất, sao chép và hơn thế nữa. Bạn sẽ phải lặp lại bước này mỗi khi bạn tạo một dự án mới.
Kiểm tra chức năng của nó bằng cách thực hiện git push:
touch testfile
git add testfile
git commit -m "test file"
git push name master
git clone git@address:new_project.git
Tệp của bạn sẽ được đẩy thành công đến origin từ xa. Để kiểm tra chéo xem thao tác đẩy có hoạt động hay không, bạn có thể sao chép kho lưu trữ và bạn tìm tệp thử nghiệm trong kho lưu trữ.
Mẹo bảo mật cho máy chủ Git
Với máy chủ Git đang hoạt động, bạn phải hết sức chú ý đến việc bảo mật của nó vì đây là máy chủ cá nhân của bạn và bạn có trách nhiệm duy trì và bảo vệ nó khỏi các mối đe dọa từ bên ngoài. Một số phương pháp bảo mật tốt nhất mà bạn nên áp dụng là:
- Tắt đăng nhập bằng mật khẩu
- Thay đổi shell mặc định thành git-shell để hạn chế người dùng đã đăng nhập phát hành bất kỳ lệnh không phải git nào
- Sử dụng một cổng tùy chỉnh cho SSH
- Vô hiệu hóa đăng nhập của người dùng root
- Thường xuyên sao lưu dữ liệu
Có rất nhiều cấu hình bảo mật và các biện pháp an toàn mà bạn có thể triển khai trên máy chủ Linux để bảo vệ nó khỏi những kẻ tấn công và ngăn chặn truy cập trái phép.
Vân Nguyễn
Dịch từ: https://www.makeuseof.com/set-up-private-git-server-on-linux/
Bình luận (0
)