Làm việc với nhiều tài khoản github trên cùng một máy tính

Mở đầu

Bạn có một tài khoản GitHub cá nhân, mọi thứ có vẻ hoàn hảo. Nhưng một ngày, bạn tìm một công việc mới và giờ thì cần có quyền để gửi và nhận từ nhiều tài khoản. Bạn sẽ làm như thế nào? Tôi sẽ chỉ cho bạn!

Hướng dẫn

Step 1: Create a New SSH Key

  • Chúng ta cần tạo ra một khóa SSH riêng biệt cho tài khoản GitHub thứ hai của mình.
ssh-keygen -t rsa -C "your-company-email-address"
  • Nhưng hãy chú ý rằng bạn không được ghi đè nên khóa đã được khai báo cho tài khoản cá nhân của bạn. Thay vào đó, khi được yêu cầu, hãy lưu tệp với tên là id_rsa_{your_company_name}. Trong trường hợp này, tôi sẽ lưu lại thành ~/.ssh/id_rsa_framgia.

Step 2: Attach the New Key

  • Tiếp theo, đăng nhập vào tài khoản Github Thứ hai của bạn, Vào mục "Account Overview", và thêm khóa mới trong phần "SSH Public Keys". Để lấy được nội dung của khóa mà bạn vừa tạo, hãy mở tệp ~/.ssh/id_rsa_{your_company_name}.pub. Sao chép chuỗi ký tự đó vào GitHub textarea. Hãy để một tiêu đề bất kỳ mà bạn muốn.
  • Tiếp đến, bởi vì chúng ta đã lưu khóa với tên riêng biệt nên chúng ta cần chỉ cho SSH về nó. Trong Terminal, gõ lệnh ssh-add ~/.ssh/id_rsa_{your_company_name}. Nếu thành công, bạn sẽ nhìn thấy dòng chữ "Identity Added".

Step 3 - Create a Config File

  • Chúng ta đã hoàn thành được phần lớn việc phải làm; nhưng bây giờ chúng ta cần một cách để chỉ định khi nào chúng ta muốn đẩy vào tài khoản cá nhân, và khi nào chúng ta nên đẩy vào tài khoản của công ty. Để làm việc này, hãy tạo ra một tệp config.
vim ~/.ssh/config
  • Nếu bạn không muốn sử dụng vim, hãy mở nó với bất kì công tụ soạn thảo nào mà bạn muốn. Ghi lại đoạn khai báo sau:
# Default GitHub
Host github.com
    HostName github.com
    User git
    IdentityFile  ./ssh/id_rsa
  • Đây là cài đặt mặc định cho việc đẩy lên tài khoản cá nhân của bạn. Lưu ý rằng chúng ta có thể đính kèm một tệp nhận dạng vào máy chủ lưu trữ. Hãy thêm cấu hình cho tài khoản công ty của bạn ngay sau đoạn cấu hình ở trên:
Host github-COMPANY
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_{your_company_name}
  • Ở đây, thay vì khai báo host là github.com, chúng ta đặt tên nó là github-COMPANY. Sự khác biệt này là giúp chúng ta định danh khóa được thêm vào sau: id_rsa_{your_company_name}. Lưu lại và thoát.

Step 4 - Try it Out

  • Đến lúc kiểm tra thành quả của chúng ta. Tạo thư mục test, mở thư mục ra rồi initialize git, và thêm commit đầu tiên của bạn.
  • Đăng nhập vào tài khoản công ty của bạn, tạo ra một kho mới tên là "test", sau đó quay lại Terminal và đẩy lên GitHub.
git remote add origin [email protected]:Company/testing.git
git push origin master
  • Chú ý rằng, ở đây, thay vì đẩy lên [email protected], chúng ta sử dụng khóa đã khai báo trong config file: [email protected]
  • Quay lại GitHub, bây giờ bạn sẽ nhìn thấy code của mình. Nhớ rằng:
  • Khi đẩy vào tài khoản cá nhân bạn hãy làm như bạn vẫn thường làm.
  • Với tài khoản của công ty, bạn hãy chắc chắn mình sử dụng [email protected]

Kết thúc

Như bài biết đã đề cập, khi có nhu cầu làm việc với 2 hay nhiều ài khoản github (thậm chí có thể cả bitbucket hay bất kỳ một dịch vụ git nào khác) trên cùng một máy tính, tôi đã không biết xử lý như thế nào. Lúc đó, tôi chỉ có thể dụng ssh cho một tài khoản cá nhân của mình và dùng https cho những cái còn lại. Điều này gây bất tiện vô cùng lớn khi tôi làm việc với git. Và khi gặp bài viết này, nó như một liều thuốc quý chữa tận gốc vấn đề mà tôi gặp phải. Tôi thấy rất vui vì điều này. Chúc các bạn học tập và làm việc hiệu quá với git.

Tham khảo

https://code.tutsplus.com/tutorials/quick-tip-how-to-work-with-github-and-multiple-accounts--net-22574 https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/