Hướng dẫn clone Gitlab repository bằng SSH Key nhằm mục đích deploy

Hướng dẫn clone Gitlab repository bằng SSH Key nhằm mục đích deploy

Khi deploy lên server, chúng ta không nên sử dụng tài khoản Gitlab cá nhân để clone một repository từ GitLab vì như vậy rất rủi ro. Thay vào đó, ta nên sử dụng phương pháp clone source bằng SSH thì sẽ tốt hơn, vì lúc này ta không cần phải quan tâm đến username, password nữa. Tuy nhiên, việc cấu hình sử dụng SSH key để clone source có vẻ như hơi khó khăn vì trong quá trình làm dự án, mình thấy có nhiều bạn (và bản thân mình trước đây) không config được, hay là config lỗi. Sau bao nhiêu lần thất bại, mình đã rút ra được kinh nghiệm để thực hiện điều này. Trong bài tutorial ngày hôm nay, mình sẽ hướng dẫn các bạn và đảm bảo thành công 100% nhé.

Note: Mình giả định ở đây, server cần clone repository của các bạn thì đã hoàn có sẵn ssh service.

1. Đầu tiên chúng ta cần phải tạo cặp SSH key

cd ~/.ssh
~/.ssh$ ssh-keygen -t rsa -b 2048 -C "Comment"

Khi tạo ssh-keygen sẽ hỏi chúng ta các thông tin như tên của key hay có sử dụng key phase để bảo mật hay không. Các thông tin này, điền thế nào là tùy theo các bạn config.

image.png

2. Tạo file config

Vẫn tại thư mục ~/.ssh, tạo file config bằng lệnh

~/.ssh$ nano config

Trong file config điền các thông tin sau:

# GitLab.com server
Host gitlab.com
PubkeyAuthentication yes
IdentityFile ~/.ssh/<tên_private_key_bạn_đã_tạo>

image.png Các bạn nhớ bấm lưu (với nano là Ctrl X).

3. Thêm Public key vào Gitlab

Copy nội dung của public key vừa tạo vào clip board, ở đây, mình dùng lệnh cat để lấy nội dung:

~/.ssh$ cat proweb_staging_rsa.pub

image.png

Ở Reposiory của bạn hãy truy cập Settings -> Repository -> Deploy Token image.png Dán nội dung public key vừa copy vào ô key và điền tên vào Title cho dễ quản lý:

image.png Note: Các bạn có thể cho phép key SSH này có quyền write hay là không. Ở đây mình sẽ không tích vào checkbox vì khi deploy mình không cần quyền write. Bấm Add Key và thông tin key được add:

image.png

4. Clone source bằng phương thức SSH

Tadaa.... image.png

Ngoài việc sử dụng deploy key, Gitlab còn có cơ chế cho phép chúng ta sử dụng deploy token. Về cơ bản phương thức này cho phép chúng ta tạo một tài khoản ảo, có thể cấp quyền truy cập repo Gilab mà không cần phải quan tâm tới tài khoản của bạn.

Như vậy qua tutorial này, mình đã hướng dẫn config thành công deploy key nhằm mục đích clone source bằng phương thức SSH phục vụ việc deploy. Mình còn gà mờ nên không tránh khỏi thiếu sót. Các bạn có thể góp ý thêm và nếu thấy hay thì like và chia sẻ nhé. Chúc các bạn config thành công.

Đây có thể là bước đầu để cấu hình CI CD rồi.. Trong tương lai, mình cũng sẽ chia sẻ những gì mình biết về CICD, và sẽ có một tutorial sử dụng Gitlab CI cơ bản. Hy vọng được ủng hộ.