aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
SAVED POSTS
aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
aedev.net
No Result
View All Result
Minh họa dùng SSH key để kết nối GitHub an toàn

Hướng dẫn dùng SSH với GitHub cho lập trình viên

admin by admin
01/07/2026
in Hướng dẫn
0
585
SHARES
3.3k
VIEWS
Summarize with ChatGPTShare to Facebook

Khi làm việc với GitHub, bạn có thể clone, pull và push code bằng HTTPS hoặc SSH. Với lập trình viên làm việc hằng ngày, SSH thường tiện hơn vì không phải nhập token nhiều lần, dễ tự động hóa trong terminal và phù hợp cho workflow có nhiều repository.

SSH với GitHub dùng để làm gì?

SSH giúp máy của bạn xác thực với GitHub bằng cặp khóa public/private key. Private key nằm trên máy local, public key được thêm vào tài khoản GitHub. Khi push code, GitHub kiểm tra key thay vì yêu cầu username/password.

Flow cơ bản sẽ là: tạo SSH key, bật ssh-agent, thêm public key vào GitHub, test kết nối, sau đó dùng remote dạng SSH cho repository.

1. Kiểm tra key hiện có

Trước khi tạo key mới, kiểm tra thư mục SSH trên máy:

ls -al ~/.ssh

Nếu đã có các file như id_ed25519 và id_ed25519.pub, bạn có thể dùng lại key đó. Nếu muốn tách riêng key cho GitHub, tạo key mới với tên rõ ràng hơn.

2. Tạo SSH key mới cho GitHub

GitHub hiện khuyến nghị dùng thuật toán ed25519 nếu hệ thống của bạn hỗ trợ:

ssh-keygen -t ed25519 -C "aedev-github"

Khi được hỏi nơi lưu key, bạn có thể đặt tên riêng:

~/.ssh/id_ed25519_github

Nên đặt passphrase cho private key nếu đây là máy cá nhân hoặc máy làm việc chính. Passphrase giúp giảm rủi ro nếu file private key bị lộ.

3. Bật ssh-agent và add private key

Trên macOS hoặc Linux, bật agent rồi thêm key:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519_github

Kiểm tra key đã được agent nhận chưa:

ssh-add -l

4. Copy public key

Public key là file có đuôi .pub. Bạn có thể in ra terminal rồi copy toàn bộ nội dung:

cat ~/.ssh/id_ed25519_github.pub

Nội dung public key thường bắt đầu bằng ssh-ed25519. Chỉ copy public key, không copy private key.

5. Thêm SSH key vào GitHub

  1. Vào GitHub.
  2. Mở Settings.
  3. Chọn SSH and GPG keys.
  4. Chọn New SSH key.
  5. Đặt title dễ nhận biết, ví dụ MacBook Pro - Work.
  6. Dán public key vào ô key và lưu lại.

Nếu key này chỉ dùng để ký commit thì chọn loại signing key. Nếu dùng để clone, pull, push repository thì chọn authentication key.

6. Test kết nối SSH tới GitHub

Sau khi thêm key, test kết nối:

ssh -T git@github.com

Lần đầu kết nối, SSH có thể hỏi bạn có tin host GitHub hay không. Gõ yes nếu fingerprint đúng theo thông tin GitHub công bố. Nếu thành công, GitHub sẽ trả về lời chào kèm username của bạn.

7. Clone repository bằng SSH

Trên trang repository, chọn nút Code, chuyển sang tab SSH, rồi copy URL dạng SSH:

git clone git@github.com:owner/repository.git

Nếu repository đã clone bằng HTTPS, bạn có thể đổi remote sang SSH:

git remote -v
git remote set-url origin git@github.com:owner/repository.git

Sau đó thử:

git pull
git push

8. Cấu hình nhiều tài khoản GitHub

Nếu bạn có một tài khoản cá nhân và một tài khoản công ty, nên tách key và dùng alias trong ~/.ssh/config.

Host github-personal
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_personal
    IdentitiesOnly yes

Host github-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_work
    IdentitiesOnly yes

Khi đó remote sẽ dùng alias thay vì host mặc định:

git remote set-url origin git@github-work:company/repository.git

Điểm quan trọng là mỗi repository phải trỏ đúng alias để SSH chọn đúng private key.

Lỗi thường gặp

Permission denied publickey: GitHub không nhận key. Hãy kiểm tra public key đã được thêm vào đúng account chưa, private key đã được ssh-add chưa, và remote có đang dùng SSH URL hay vẫn là HTTPS.

ssh-add -l
git remote -v

Repository not found: thường là sai owner/repository, chưa có quyền truy cập repo private, hoặc đang dùng nhầm GitHub account/key.

Host key verification failed: file known_hosts có thể đang lưu fingerprint cũ hoặc bị sai. Không nên xóa bừa; hãy kiểm tra fingerprint chính thức của GitHub trước khi cập nhật.

Kết luận

SSH với GitHub giúp workflow Git gọn hơn, đặc biệt khi bạn làm việc nhiều với terminal, CI/CD hoặc nhiều repository private. Cách setup tốt là dùng key riêng cho GitHub, đặt passphrase, thêm key vào ssh-agent, test bằng ssh -T git@github.com và quản lý nhiều account qua file ~/.ssh/config.

Tham khảo thêm: GitHub Docs về SSH.

SummarizeShare234
admin

admin

Related Stories

Minh họa kết nối SSH an toàn giữa máy lập trình viên và server

SSH là gì? Hướng dẫn cơ bản cho lập trình viên

by admin
01/07/2026
0

SSH là kỹ năng nền tảng giúp lập trình viên kết nối server, deploy ứng dụng và quản trị hệ thống từ xa một cách an toàn.

Thiết kế backend API gọn gàng cho sản phẩm nhỏ

by admin
30/06/2026
0

Một vài nguyên tắc đơn giản giúp API dễ dùng, dễ debug và dễ mở rộng.

CI/CD cơ bản cho team dev nhỏ

by admin
30/06/2026
0

Bắt đầu CI/CD bằng những bước nhỏ: kiểm tra code, chạy test và deploy có kiểm soát.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

AE Dev

AE Dev mang đến các bài viết về lập trình, mobile app, backend, frontend, WordPress và công nghệ, phù hợp cho developer muốn học hỏi và cập nhật kiến thức thực tế.

Recent Posts

  • Hướng dẫn dùng SSH với GitHub cho lập trình viên
  • SSH là gì? Hướng dẫn cơ bản cho lập trình viên
  • CI/CD cơ bản cho team dev nhỏ

Categories

  • AI
  • Backend
  • Đánh giá
  • DevOps
  • Flutter
  • Hướng dẫn
  • Lập trình Mobile
  • React Native

Weekly Newsletter

  • Buy JNews
  • Support Forum
  • Pre-sale Question
  • Contact Us

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • Trang chủ
  • AI
  • Mobile
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
  • Flutter

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.