Multiple SSH Keys settings for different github account

Khi bạn làm việc với nhiều khách hàng vì vấn đề quản lý và bảo mật nên mỗi khách hàng lại muốn bạn tạo 1 tài khoản github khác nhau cho dự án bạn tham gia. Thành ra bạn sở hữu quá nhiều tài khoản, mỗi tài khoản khi muốn sử dụng lại phải tạo và add pub_key riêng với mỗi lần bạn muốn thao tác trên tài khoản đó.
Bài viết dưới đây mình sẽ hướng dẫn các bạn sử dụng
Multiple SSH Keys.

Tạo các public key cho mỗi tài khoản

Ví dụ mình có 2 tài khoản git, 1 sử dụng ở Haposoftaccounthaposft@haposoft.com, 1 sử dụng với bên khách hàng accountcustomers@customer.com. Mình sẽ tạo 2 ssh key, mỗi ssh_key ứng với 1 tài khoản trên. Dùng lệnh:

$ ssh-keygen -t rsa -C "your_email@youremail.com"

Với tài khoản customer ở trên mình sẽ tạo 1 pub_key: id_rsa_customers như sau:
(Khi tạo tới bước Enter file in which to save the key bạn nhập đường dẫn mà bạn muốn chứa file key. Ở đây mình đây mình để mặc định là ~/.ssh/)

Tương tự với tài khoản của công ty mình cũng sẽ tạo 1 pub_key là id_rsa_haposoft.

~/.ssh/id_rsa_customers
~/.ssh/id_rsa_haposoft

Sau khi tạo xong, mình thêm 2 public key trên vào github với mỗi tài khoản của công ty và khách hàng.
(Các bạn có thể thêm ssh key tại đây)

$ cat ~/.ssh/id_rsa_customers.pub
$ cat ~/.ssh/id_rsa_haposoft.pub

Thao tác với các SSH key

Add key:

$ ssh-add ~/.ssh/id_rsa_customers
hoặc  
$ ssh-add ~/.ssh/id_rsa_haposoft

Tùy trường hợp bạn đang làm việc với bên nào mà có thể add key đó identity added để sử dụng.
Để check key nào đã add bạn sử dung:

$ ssh-add -l

Và xóa tất cả cached key trước đó:

$ ssh-add -D

Như trường hợp của mình, buổi sáng khách hàng gọi, sau khi fix bug xong, buổi chiều quay lại với Haposoft thì mình sẽ xử lý:

$ ssh-add ~/.ssh/id_rsa_customers

(identity key của khách hàng để sửa code khách hàng)

$ ssh-add ~/.ssh/id_rsa_haposoft

(identity key của công ty để push code công ty)

Còn nếu bạn không nhớ mình đã add identity key nào thì hãy xóa tất cả cached key rồi add lại từ đầu.

Trên đây, mình vừa giới thiệu về cách cài đặt nhiều tài khoản github để không phải tạo mới và add ssh key khi sử dụng các tài khoản khác nhau.

Related article