Thiết lập máy chủ Git riêng trên Linux để lưu trữ dự án

Cách thiết lập máy chủ Git riêng trên Linux

Chia sẻ kiến thức 06/08/2022

Git là một hệ thống kiểm soát phiên bản mã nguồn mở được lập trình viên trên toàn thế giới sử dụng. Bài viết này sẽ hướng dẫn bạn cách bạn thiết lập máy chủ Git Linux riêng để lưu trữ các dự án của bạn.

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/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại