Site logo
Tác giả
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
Ngày xuất bản
Ngày xuất bản

Quản Lý Nhiều Tài Khoản GitHub Trên Cùng Một Máy Tính Bằng SSH

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

  1. 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
  1. Ở 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
  2. Trong phần "Access" ở thanh bên, nhấp vào "SSH and GPG keys".
  3. 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
  4. 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".
  5. Chọn loại khóa bạn muốn thêm. Ở đây để mặc định là "Authentication key".
  6. Trong trường "Key", dán public key của bạn vào.
  7. Nhấp vào "Add SSH key".
  8. 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.

Github add ssh key

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_keypersonal_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.namegit 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