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
586
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 pipeline CI/CD từ commit đến deploy cho team nhỏ

Git blame -L để lần về commit của một đoạn ngắn

by Suong Nguyen
13/11/2026
0

Chọn mốc và phạm vi dòng để tra commit liên quan khi review.

Minh họa pipeline CI/CD từ commit đến deploy cho team nhỏ

Git branch –merged: đọc danh sách theo đúng nhánh đích sau squash

by Suong Nguyen
12/11/2026
0

Xem tip của nhánh nào đã nằm trong lịch sử nhánh đích và hiểu vì sao squash không cho kết quả giống merge.

Minh họa pipeline CI/CD từ commit đến deploy cho team nhỏ

Git word-diff: đọc thay đổi từng từ trong một dòng tài liệu dài

by Suong Nguyen
11/11/2026
0

Tạo repository thử để so unified diff và word-diff, nhận biết giới hạn dấu phân cách và chọn đúng phạm vi so sánh.

Minh họa pipeline CI/CD từ commit đến deploy cho team nhỏ

Git log –follow: đọc tiếp lịch sử của một file sau khi đổi tên

by Suong Nguyen
10/11/2026
0

Dựng ba commit để so sánh log theo đường dẫn hiện tại với log --follow và tìm lại phần lịch sử trước lần đổi tên file.

Next Post
Minh họa môi trường phát triển React Native với laptop, Android emulator và iOS simulator

Hướng dẫn setup môi trường để dev React Native

0 0 votes
Article Rating
Subscribe
Login
Notify of
guest
guest
0 Comments
Oldest
Newest Most Voted
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

  • React Native Alert trên Android và hai đường hủy hộp thoại
  • Map.set có đưa khóa đã tồn tại xuống cuối không?
  • Android postInvalidate khi custom View cần lên lịch vẽ lại

Categories

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

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.

wpDiscuz
0
0
Would love your thoughts, please comment.x
()
x
| Reply