Quản Lý Nhiều Tài Khoản Git Cùng Lúc: Hướng Dẫn SSH Cho Lập Trình Viên
Đối với lập trình viên, những cái tên như Git, GitHub hay GitLab có lẽ đã quá quen thuộc rồi, phải không? Đây chính là nơi chúng ta trao đổi, quản lý và cộng tác trên cùng một source code. Tuy nhiên, bài viết này không phải để hướng dẫn cách sử dụng Git — chủ đề này đã có rất nhiều tài liệu hay ngoài kia rồi, nên mình sẽ không lặp lại nữa nhé 😎
Hôm này mình sẽ chỉa sẻ cách mình dùng được nhiều tài khoản Git mà không cần phải đăng nhập mỗi lần đẩy code từ một tài khoản khác 😏
Tại sao cần làm vậy?
Thứ nhất: Khi đi làm chúng ta sẽ dùng nhiều tài khoản khác nhau như tài khoản của công ty, cá nhân hay khách hàng...
Thứ hai: Làm vậy cũng rất ngầu nữa 😎
Các bước triển khai
- Tạo thư mục .ssh (Nếu bạn đã có thư mục này thì thôi chuyển qua bước 2 luôn nha 😁)
- Cách vừa kiểm tra vừa tạo là chạy đoạn mã này trong terminal:
1mkdir ~/.ssh
- Gen SSH key và tạo file config
- Chuyển đến thư mục .ssh
1cd ~/.ssh
- Tạo file config
1touch config
- Tạo 2 SSH key(để tiện cho việc làm ví dụ) tương ứng với 2 tài khoản Git của bạn
1ssh-keygen -t ed25519 -C "your_email@example.com"
- Nếu các bạn đang dùng prettirer hay bất kỳ extension format code nào khác thì tạo file ignore để nó không format khiến config của ta không hoạt động nhé.
1touch .prettierignore
Rồi thêm đoạn này vào trong file ignore đó: *config
- Mở VScode lên
1code .
Nếu thành công các bạn sẽ thấy được giống như hình dưới:

Ảnh trong folder ~/.ssh
-
Tạo điều hướng đến các file SSH key trong file configFile config này sẽ giúp ta tự động điều hướng đến các file chứa SSH key mà chúng ta đã khai báo trong đó.
1# Personal GitHub 2Host github.com 3 HostName github.com 4 User git 5 IdentityFile ~/.ssh/id_personal 6 IdentitiesOnly yes 7 8# Huy GitHub 9Host github-huy 10 HostName github.com 11 User git 12 IdentityFile ~/.ssh/huy 13 IdentitiesOnly yes
| Cấu hình | Ý nghĩa |
|---|---|
| Host github.com | Đây là bí danh (alias). Khi bạn gõ "ssh github.com" hoặc push code qua "git@github.com", SSH sẽ tìm cấu hình theo "Host" này. |
| HostName github.com | Đây là địa chỉ thực tế của server SSH. Thường sẽ giống "Host" nếu bạn dùng GitHub. |
| User git | Tên user đăng nhập trên server. Khi push/pull qua SSH, GitHub luôn yêu cầu user là "git". |
| IdentityFile ~/.ssh/id_personal | Đường dẫn đến SSH key riêng cho kết nối này. Bạn sẽ dùng key "id_personal" để kết nối với GitHub. |
| IdentitiesOnly yes | Buộc SSH chỉ sử dụng file key được chỉ định (không thử các key khác). Cái này quan trọng khi bạn có nhiều SSH key trong máy, giúp tránh nhầm lẫn. |
Cái bảng này là mình bảo Chat GPT giải thích đó cũng khá là đầy đủ. Nhưng đừng lo nếu bạn chưa hiểu hết thì hãy xem tiếp phần giải thích của mình.
- Clone dự án
-
Để làm được bước này các bạn cần chắc chắn là đã thêm SSH key vào Github (Nó là các file .pub) rồi vào link này để thêm https://github.com/settings/ssh/new

Thêm SSH vào Github
-
Cùng nhìn lại file config này:
1# Personal GitHub 2Host github.com 3 HostName github.com 4 User git 5 IdentityFile ~/.ssh/id_personal 6 IdentitiesOnly yes 7 8# Huy GitHub 9Host github-huy 10 HostName github.com 11 User git 12 IdentityFile ~/.ssh/huy 13 IdentitiesOnly yes
Nếu bạn muốn clone source code với tài khoản của Huy thì ở bước copy link clone:


Ảnh clone dự án
Các bạn copy bình thường và sửa lại đoạn "github.com" -> "github-huy"
1git clone git@github.com:tuananh31j/seo-editor.git -> git clone git@github-huy:tuananh31j/seo-editor.git
Bạn Clone với tài khoản nào thì bạn sẽ có quyền của tài khoản đó với source mà bạn clone về. Nếu bạn muốn commit cũng hiện đúng tên với tài khoản hiện tại thì bạn cần làm một bước nữa là sửa lại user ở git local. Bạn cd đến thư mục vừa mới clone và chạy đoạn mã bên dưới:
1git config --local user.email "email_github_của_bạn"
Đó vậy là thành công rồi! 😎
Nếu chưa được bạn hãy join https://discord.gg/4Tb6skeeZT và ping @tuananh31j mình sẽ vào hỗ trợ nhé 😁