Sử Dụng Nhiều Tài Khoản GitHub SSH Trên Cùng Một Server Linux để triển khai source code lên server
Khi làm việc với nhiều tài khoản GitHub trên cùng một VPS hoặc server Linux, bạn có thể gặp lỗi:
ERROR: Repository not found.
fatal: Could not read from remote repository.hoặc:
Key is already in useNguyên nhân là mỗi SSH key chỉ có thể được liên kết với một tài khoản GitHub tại một thời điểm. Nếu server đang sử dụng SSH key của tài khoản A thì sẽ không thể truy cập repository private của tài khoản B.
Bài viết này hướng dẫn cách tạo nhiều SSH key và cấu hình để sử dụng nhiều tài khoản GitHub trên cùng một server.
Bước 1: Kiểm tra tài khoản GitHub hiện tại
Kiểm tra SSH đang đăng nhập vào GitHub bằng tài khoản nào:
ssh -T git@github.comVí dụ kết quả:
Hi liensalemall! You've successfully authenticated, but GitHub does not provide shell access.Điều này cho biết SSH key hiện tại đang thuộc tài khoản liensalemall.
Bước 2: Tạo SSH Key mới
Tạo SSH key dành riêng cho tài khoản GitHub:
ssh-keygen -t ed25519 -C "vanlien129@gmail.com" -f ~/.ssh/github_toolSau khi hoàn thành sẽ có hai file:
~/.ssh/github_tool
~/.ssh/github_tool.pubBước 3: Thêm SSH Key vào GitHub
Hiển thị public key:
cat ~/.ssh/github_tool.pubCopy toàn bộ nội dung và thêm vào GitHub:
GitHub
→ Settings
→ SSH and GPG keys
→ New SSH keyĐặt tên và lưu lại.
Bước 4: Cấu hình SSH Alias
Mở file cấu hình SSH:
nano ~/.ssh/configThêm nội dung:
Host github-tool
HostName github.com
User git
IdentityFile ~/.ssh/github_tool
IdentitiesOnly yesLưu lại và phân quyền:
chmod 600 ~/.ssh/config
chmod 600 ~/.ssh/github_tool
chmod 644 ~/.ssh/github_tool.pubBước 5: Kiểm tra kết nối
Kiểm tra alias vừa tạo:
ssh -T github-toolNếu thành công sẽ nhận được:
Hi liensalemall! You've successfully authenticated, but GitHub does not provide shell access.Điều này chứng tỏ SSH key mới đã được liên kết đúng với tài khoản GitHub mong muốn.
Bước 6: Cập nhật Remote Repository
Giả sử repository private:
liensalemall/lienvu_com_reactCập nhật remote:
git remote set-url origin git@github-tool:liensalemall/lienvu_com_react.gitKiểm tra lại:
git remote -vKết quả:
origin git@github-tool:liensalemall/lienvu_com_react.git (fetch)
origin git@github-tool:liensalemall/lienvu_com_react.git (push)Bước 7: Pull Code
Bây giờ có thể pull code bình thường:
git pull origin mainHoặc:
git fetch
git pull
git pushmà không cần nhập username hoặc password.
Ví dụ sử dụng nhiều tài khoản GitHub
File ~/.ssh/config:
Host github-company
HostName github.com
User git
IdentityFile ~/.ssh/github_company
Host github-personal
HostName github.com
User git
IdentityFile ~/.ssh/github_personal
Host github-tool
HostName github.com
User git
IdentityFile ~/.ssh/github_toolKhi đó mỗi repository có thể sử dụng một tài khoản GitHub khác nhau mà không bị xung đột SSH key.
Kết luận
Thay vì sử dụng chung một SSH key cho tất cả repository, việc tạo nhiều SSH key và sử dụng SSH Alias giúp:
- Quản lý nhiều tài khoản GitHub trên cùng server.
- Truy cập repository private dễ dàng.
- Không cần nhập username/password khi pull hoặc push.
- Dễ dàng phân quyền và quản lý bảo mật.
Đây là giải pháp phù hợp cho VPS, CI/CD Server, Docker Build Server hoặc môi trường DevOps sử dụng nhiều tài khoản GitHub.



Nhận xét
Đăng nhận xét