Nếu bạn có nhiều tài khoản Github, bạn có thể muốn sử dụng chúng trên cùng một máy mà không phải nhập tên người dùng và mật khẩu mỗi lần bạn push hoặc pull. Trong bài viết này, tôi sẽ chỉ cho bạn cách sử dụng khóa SSH để quản lý nhiều tài khoản Github trên một máy duy nhất.
Bài viết này sẽ hướng dẫn bạn quá trình thiết lập nhiều tài khoản Github bằng SSH, cho phép bạn truy cập dễ dàng mà không cần phải nhập mật khẩu lần nào nữa. Hãy sẵn sàng với kỹ năng 'tung hứng' của bạn!
Bước 1: Tạo khóa SSH
Bước đầu tiên là tạo khóa SSH cho từng tài khoản GitHub của bạn. Mỗi tài khoản sẽ có khóa riêng (được giữ an toàn trên máy của bạn) và khóa công khai (chia sẻ với Github để xác thực).
# Tài khoản mặc định(sẽ lưu vào file mặc định ~/.ssh/id_ed25519)
ssh-keygen -t ed25519 -C "your_personal_email@example.com"
# Tài khoản công ty
ssh-keygen -t ed25519 -C "your_personal_email@example.com" -f ~/.ssh/work_key -P ""
# Tài khoản cá nhân
ssh-keygen -t ed25519 -C "your_company_email@company.com" -f ~/.ssh/personal_key -P ""
# Nếu bạn đang sử dụng hệ thống cũ không hỗ trợ thuật toán Ed25519, hãy sử dụng:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/your_email -P ""
Lặp lại lệnh này cho từng tài khoản, đặt tên khóa phù hợp với mỗi tài khoản.
Bước 2: Thêm khóa SSH vào SSH Agent
Khởi động SSH agent và thêm các khóa vào:
eval "$(ssh-agent -s)"
# Đối với tài khoản GitHub công ty
ssh-add ~/.ssh/work_key
# Đối với tài khoản GitHub cá nhân
ssh-add ~/.ssh/personal_key
Bước 3: Thêm khóa SSH vào GitHub
- Sao chép nội dung của từng khóa công khai:
cat ~/.ssh/work_key.pub # Sao chép khóa cho tài khoản công ty
cat ~/.ssh/personal_key.pub # Sao chép khóa cho tài khoản cá nhân
- Ở góc trên bên phải của bất kỳ trang nào trên GitHub, nhấp vào ảnh đại diện của bạn, sau đó chọn Cài đặt (Settings). Bạn có thể truy cập setting bằng đường dẫn sau: https://github.com/settings/profile
- Trong phần "Access" ở thanh bên, nhấp vào "SSH and GPG keys".
- Nhấp vào "New SSH key" hoặc "Add SSH key". Tương ứng với đường dẫn: https://github.com/settings/ssh/new
- Trong trường "Title", nhập một nhãn mô tả cho khóa mới. Ví dụ, nếu bạn dùng laptop cá nhân, bạn có thể đặt tên là "Personal laptop".
- Chọn loại khóa bạn muốn thêm. Ở đây để mặc định là "Authentication key".
- Trong trường "Key", dán public key của bạn vào.
- Nhấp vào "Add SSH key".
- Nếu được yêu cầu, xác nhận quyền truy cập vào tài khoản GitHub của bạn.
Bước 4: Tạo tệp cấu hình SSH
Tạo hoặc chỉnh sửa tệp ~/.ssh/config:
vi ~/.ssh/config
Host github-work
HostName github.com
IdentityFile ~/.ssh/work_key
IdentitiesOnly yes
Host github-personal
HostName github.com
IdentityFile ~/.ssh/personal_key
IdentitiesOnly yes
Thay work_key
và personal_key
bằng đường dẫn thực tế của bạn. Mỗi khối Host định nghĩa một bí danh duy nhất (ví dụ: "github-work") để dễ dàng truy cập.
Bước 5: Clone Repositories
Khi clone các kho lưu trữ, hãy sử dụng tên máy chủ phù hợp cho mỗi tài khoản
# Clone repo cá nhân
git clone git@github-personal:username/repo.git
# Clone repo công ty
git clone git@github-company:company/repo.git
Không có yêu cầu xác thực. Bạn sẽ dễ dàng chuyển đổi giữa các danh tính GitHub của mình.
Giờ đây, bạn đã thiết lập thành công nhiều tài khoản GitHub với nhiều khóa SSH trên máy của mình. Bạn có thể dễ dàng chuyển đổi giữa các tài khoản và đóng góp cho các dự án khác nhau mà không gặp phải xung đột nào.
Thiết lập user cho từng repository
cd path/to/repo
git config user.name "Your Name"
git config user.email "your_email@example.com"
Bảng so sánh: Sử dụng SSH vs HTTPS cho nhiều tài khoản Git
Tiêu chí | SSH (Khuyến nghị) | HTTPS |
---|---|---|
Bảo mật | Cao (khóa riêng tư) | Trung bình (password) |
Đa tài khoản | Dễ cấu hình với SSH config | Khó, phải login lại |
Tự động hóa | Dễ (không cần nhập pass) | Thường xuyên nhập pass |
Hỗ trợ CI/CD | Tốt | Có thể bị giới hạn |
Quản lý key | Linh hoạt | Không hỗ trợ |
Một số lỗi thường gặp và cách khắc phục
Lỗi: Permission denied (publickey)
- Kiểm tra đã add đúng SSH key lên GitHub/GitLab chưa
- Kiểm tra file
~/.ssh/config
đã đúng chưa - Sử dụng lệnh
ssh -T git@github-personal
để test kết nối
Lỗi: Commit nhầm tài khoản
- Kiểm tra lại cấu hình user/email trong repo bằng
git config --list
- Sử dụng
git config user.name
vàgit config user.email
để chỉnh lại
Lưu ý
Giữ các khóa riêng tư của bạn an toàn. Xem xét bảo vệ bằng mật khẩu để tăng cường bảo mật. Đừng chia sẻ khóa riêng tư của bạn với bất kỳ ai!
Kết luận
Việc cấu hình nhiều tài khoản Git với SSH giúp developer chủ động, bảo mật và chuyên nghiệp hơn khi làm việc với nhiều dự án. Hãy áp dụng các bước trên để tối ưu workflow cá nhân và doanh nghiệp.
Tham khảo
Đọc bài với phiên bản tiếng Anh tại đây: tại đây