Hướng dẫn cấu hình SSH Keygen trên Github và config ssh local để có thể sử dụng nhiều tài khoản github bằng alias tương ứng
Các bước liên kết git local và remote git thông thường
1. Tạo ssh keygen bằng rsa
ssh-keygen -t rsa -b 4096 -C "your-email@gmail.com" -f ~/.ssh/id_rsa_personal
Giải thích nhanh:
-t rsa→ loại key RSA-b 4096→ độ dài key (bảo mật cao hơn mặc định 2048)-C→ thêm comment/email để dễ nhận diện-f→ đường dẫn + tên file key (không cần.pub, nó sẽ tự tạo thêm file.pub)
Chú ý: nếu không đặt tên file key thì mặc định sẽ có tên là id_rsa
Copy key vừa tạo
pbcopy < ~/.ssh/id_rsa_personal.pub
2. Thêm keygen vào remote SSH
Login github account > Settings > SSH & GPG keys
New ssh key > Dán key vừa copy ở bước 1 vào ô textarea > Lưu
3. Kiểm tra connection
Chạy lệnh
ssh -T git@alias-name
=> Kết quả:
Hi tien-dn! You've successfully authenticated, but GitHub does not provide shell access.
Giải thích alias-name là tên alias trong file config .ssh/config
Có thể kiểm tra tên alias bằng cách chạy lệnh
nano ~/.ssh/config
Có thể tham khảo cấu trúc sau
# Cá nhân
Host tien-dn
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_personal
# Công ty
Host employee
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
Host company
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
Trong đó, Host là tên alias sẽ sử dụng keygen nào mà bạn muốn. Ví dụ ở đây tôi muốn dùng 1 tài khoản github cá nhân để quản lý các project cá nhân, và 1 tài khoản github công ty cho dự án.
Tạo 2 alias là tien-dn (cá nhân), và employee (công ty)
tien-dn sẽ dùng keygen từ .ssh/id_rsa_personal
employee sẽ dùng keygen từ .ssh/id_rsa (đây là keygen mặc định lúc mới tạo)
File config này có ý nghĩa, khi dùng git clone hoặc git add remote origin sẽ phải thêm vào alias cho nó, ví dụ như
git remote add origin git@github.com:{your-username}/myrepo.git
Nếu dụng alias sẽ là:
git remote add origin git@tien-dn:tien-dn/myrepo.git
Ý nghĩa của lệnh này là connect remote với repo của tien-dn (tên này mình đặt bị giống với alias, nếu là công ty thì sẽ là company name). Còn git@tien-dn nghĩa là hãy sử dụng config của alias tien-dn
4. Config user.name và user.email
Nhớ config thêm bước này để tránh push nhầm code lên repo công ty với author là account cá nhân nhé (hoặc ngược lại)
git config user.name "your-git-username"
git config user.email "your-git-email@gmail.com"
Nếu bạn bật Keep my email addresses private trong Settings thì hãy dùng email no-reply của github. Đây là 1 public email được github gen ra tự động
git config user.email "your-email@users.noreply.github.com"
5. Cấu hình tự động apply github profile tương ứng với folder
Với folder bạn muốn sử dụng git profile cá nhân, thay vì gõ git config 1 cách thủ công, hãy sử dụng file config:
nano ~/.gitconfig-personal
Với nội dung bên trong:
[user]
name = "username"
email = "12345678+username@users.noreply.github.com"
Chỉ cần tạo project bên trong folder chứa git config này thì sẽ tự động apply account git cá nhân của bạn
Chúc bạn thành công ^^
