Thứ sáu, 02/08/2013 | 00:00 GMT+7

Cách thiết lập server Git riêng trên VPS


Giới thiệu

Hướng dẫn này sẽ chỉ cho bạn cách cài đặt một server Git hoàn chỉnh bằng cách sử dụng các SSH key để xác thực. Nó sẽ không có giao diện web, điều này sẽ chỉ bao gồm việc cài đặt Git và cài đặt quyền truy cập của bạn vào nó. Ta sẽ sử dụng server lưu trữ "git.server.com" thay cho domain bạn sẽ sử dụng cho VPS của bạn .

Đây có thể là một lựa chọn tuyệt vời nếu bạn muốn giữ mã riêng tư trong khi làm việc. Mặc dù open-souce có xu hướng là hiện trạng, nhưng đôi khi bạn không muốn để mã của bạn tự do. Một ví dụ sẽ là nếu bạn đang phát triển một ứng dụng dành cho thiết bị di động, đặc biệt là một ứng dụng trả phí. Lưu ý mã này có thể được đọc bởi bất kỳ ai nếu họ biết địa chỉ URL để sử dụng cho một bản sao, nhưng đó chỉ là nếu họ biết nó.

Có một mối quan tâm lớn đối với nhiều người và đó là giao diện web cho kho của bạn. GitHub hoàn thành điều này một cách đáng kinh ngạc. Có những ứng dụng mà bạn có thể cài đặt như Gitosis , GitListGoblet . Ta không xem qua những thứ đó trong hướng dẫn này, nhưng nếu bạn phụ thuộc nhiều vào giao diện đồ họa thì bạn có thể cần xem qua những thứ đó và nghĩ đến việc cài đặt một trong số chúng ngay sau khi bạn cài đặt xong server Git của bạn .

Tạo cặp SSH key

Đầu tiên, ta cần tạo một cặp SSH key . Nếu bạn đang sử dụng Mac hoặc Linux, bạn có thể chỉ cần đưa ra lệnh sau trong một terminal , nhưng thay thế địa chỉ email bằng địa chỉ email của bạn :

ssh-keygen -C "youremail@mailprovider.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/flynn/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again: 
Your identification has been saved in foo_rsa.
Your public key has been saved in foo_rsa.pub.
The key fingerprint is:
ab:cd:ef:01:23:45:67:89:0a:bc:de:f0:12:34:56:78 flynn@en.com
The key's randomart image is:
+--[ RSA 2048]----+
|    o+-+  ..     |
|  E o            |
|   . ++.o..      |
|    o o H .      |
|   . .   =       |
|    . =o.o=      |
| o .             |
|  .              |
|     = o  .      |
+-----------------+

Tôi thực sự khuyên bạn nên đặt password trên các file khóa, nó là một lớp bảo mật nữa và có tác động rất nhỏ. Nếu bạn đang sử dụng hệ điều hành dựa trên Windows, có sẵn các công cụ để tạo cặp khóa, chẳng hạn như PuTTY Gen, mặc dù nó đi kèm với tuyên bố từ chối trách nhiệm mà bạn cần phải kiểm tra với luật pháp local của bạn trước khi sử dụng vì một số quốc gia đã cấm sử dụng. Nếu không phải như vậy, bạn có thể đăng nhập vào VPS của bạn , tạo cặp khóa và download cả id_rsa và id_rsa.pub để sử dụng.

Tiếp theo, VPS cần một user cụ thể cho Git. Hầu hết mọi người sẽ chỉ cần tạo một user có tên "Git" và đó là những gì ta sẽ làm cho hướng dẫn này nhưng hãy đặt tên cho user này bất cứ điều gì bạn muốn.

Cài đặt user Git và cài đặt Git trên VPS của bạn

Đăng nhập vào VPS của bạn và giành quyền root *:

su -

* Một số người cảm thấy không thoải mái khi sử dụng root theo cách này. Nếu VPS của bạn được cài đặt để sử dụng sudo, thì hãy làm như vậy.

Thêm user Unix (không nhất thiết là tên user Git) để xử lý các kho:

useradd git

Sau đó, cung cấp password cho user Git của bạn:

passwd git

Bây giờ nó dễ dàng như:

  • CentOS / Fedora: yum install git
  • Ubuntu / Debian: apt-get install git

Thêm Khóa SSH của bạn vào Danh sách Truy cập

Đến đây, bạn cần đăng nhập với quyền user Git. Nếu bạn chưa đăng nhập vào user đó, hãy sử dụng lệnh này để chuyển sang nó:

su git

Bây giờ, bạn cần tải file id_rsa.pub lên folder chính của user Git. Khi bạn đã làm điều đó, ta cần cho daemon SSH biết SSH key nào cần chấp nhận. Điều này được thực hiện bằng cách sử dụng file khóa được ủy quyền và nó nằm trong folder dấu chấm "ssh". Để tạo điều này, hãy nhập:

mkdir ~/.ssh && touch ~/.ssh/authorized_keys

Lưu ý: Sử dụng dấu '&' trong lệnh của bạn sẽ xâu chuỗi chúng lại, vì vậy nó yêu cầu hệ thống thực hiện lệnh đầu tiên và sau đó là lệnh thứ hai. Sử dụng 'dấu ngã' ở đầu đường dẫn sẽ yêu cầu hệ thống sử dụng folder chính của bạn, vì vậy '~' trở thành / home / git / đối với VPS của bạn.

Ta sẽ sử dụng lệnh 'cat', lệnh này sẽ lấy nội dung của file và đưa chúng trở lại dòng lệnh. Sau đó, ta sử dụng công cụ sửa đổi '>>' để thực hiện điều gì đó với kết quả đó thay vì chỉ in nó trong console của bạn. Hãy cẩn thận với điều này, vì một dấu '>' sẽ overrides lên tất cả nội dung của file thứ hai mà bạn chỉ định. Dấu đôi '>' sẽ nối thêm vào, vì vậy hãy đảm bảo bạn biết mình muốn làm gì và trong hầu hết các trường hợp, sẽ dễ dàng hơn khi chỉ cần sử dụng ">>" để bạn luôn có thể xóa những gì bạn thêm thay vì tìm cách khôi phục những gì bạn tán nhuyễn.

Mỗi dòng trong file này là một mục nhập cho một khóa mà bạn muốn có quyền truy cập vào account này. Để thêm khóa bạn vừa tải lên, hãy nhập như sau, thay thế:

cat .ssh/id_rsa.pub | ssh user@123.45.56.78 "cat >> ~/.ssh/authorized_keys"

Đến đây bạn có thể thấy khóa ở đó nếu bạn sử dụng cat trên file khóa được ủy quyền:

cat ~/.ssh/authorized_keys

Nếu bạn muốn thêm những người khác vào danh sách truy cập của bạn , họ chỉ cần cung cấp cho bạn khóa id_rsa.pub của họ và bạn nối nó vào file khóa được ủy quyền.

Cài đặt repository local

Đây là một quá trình khá đơn giản, bạn chỉ cần gọi lệnh Git và khởi tạo một repository trống trong bất kỳ folder nào bạn muốn. Giả sử tôi muốn sử dụng "Dự án của tôi" làm tiêu đề dự án. Khi tạo folder , tôi sẽ sử dụng tất cả các chữ thường, thay thế bất kỳ khoảng trắng nào bằng dấu gạch ngang và thêm ".git" vào tên. Vì vậy, "My Project" trở thành "my-project.git".

Để tạo folder đó dưới dạng repository Git trống:

git init --bare my-project.git

Đó là nó! Đến đây bạn có một repository Git được cài đặt trên VPS của bạn . Hãy chuyển sang cách sử dụng nó với máy tính local của bạn.

Sử dụng Server Git từ Máy tính local của bạn

Trên Linux hoặc Mac OS, bạn cần thay đổi nguồn root từ xa thành server mới tạo của bạn . Nếu bạn đã có một repository local mà bạn muốn đẩy lên server , hãy thay đổi điều khiển từ xa bằng lệnh sau:

git remote set-url origin git@git.server.com:my-project.git

Nếu đây là một repository mới mà bạn đang cài đặt , hãy sử dụng cái này:

git init && git remote add origin git@git.server.com:my-project.git

Như vậy, bạn có thể thêm, đẩy, kéo và thậm chí sao chép khi biết rằng mã của bạn chỉ có thể truy cập cho chính bạn.

Nhưng nếu bạn muốn một vài người tin cậy có quyền truy cập vào server này và bạn muốn giữ mọi thứ đơn giản bằng cách sắp xếp chúng theo tên của user của bạn? Một cách đơn giản và hiệu quả để làm điều đó là tạo một folder được đặt tên theo từng người, vì vậy trong folder chính cho danh sách user Git của bạn, hãy nhập:

mkdir user1 user2

Bây giờ khi bạn chỉ định repository từ xa, nó sẽ giống như sau:

git remote add origin git@git.server.com:user1/user-project.git

Tags:

Các tin liên quan

Cách cài đặt và cấu hình firewall server cấu hình (CSF) trên Ubuntu
2013-07-29
Kiến thức cơ bản về quyền của Linux và cách sử dụng Umask trên VPS
2013-07-10
Cách bảo mật server cloud chống lại SQL Injection
2013-07-05
Cài đặt và sử dụng Vim Text Editor trên Cloud Server
2013-07-03
Cách cài đặt Zend Server 6 trên VPS CentOS 6.4
2013-07-03
Cài đặt và sử dụng Vim Text Editor trên Cloud Server
2013-07-03
Cách sử dụng Z Shell (zsh) trên server cloud
2013-07-01
Cách thêm tệp swap trên server cloud Arch Linux
2013-06-28
Cách cài đặt server DNS BIND trên CentOS 6
2013-06-12
Cách cài đặt eJabberd XMPP Server trên Ubuntu
2013-06-04