hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Cấu trúc dữ liệu và giải thuật
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Lập trình C#
      • Lập Trình C# Cơ Bản
      • ASP.NET Core MVC
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Git và Github
Hướng dẫn triển khai GitHub Deploy Key qua SSH trên Linux Server

Hướng dẫn triển khai GitHub Deploy Key qua SSH trên Linux Server

  • 14-02-2026
  • Toanngo92
  • 0 Comments

Mục lục

  • 1. Deploy key là gì?
  • 2. Chuẩn bị môi trường
  • 3. Tạo SSH deploy key trên server
  • 4. Cấp quyền file SSH
  • 5. Copy public key lên GitHub
  • 6. Cấu hình SSH alias
  • 7. Test kết nối SSH
  • 8. Clone repository
    • Clone vào thư mục mới
    • Clone trực tiếp vào thư mục hiện tại
  • 9. Kiểm tra repo
  • 10. Lỗi thường gặp & cách xử lý
    • ❌ Permission denied (publickey)
    • ❌ Host key verification failed
    • ❌ No such identity
    • ❌ Thư mục không trống khi clone
  • 11. Best practice production
  • 12. Kết luận

1. Deploy key là gì?

Deploy key là một SSH key được gắn trực tiếp vào một repository GitHub, thay vì gắn với tài khoản người dùng.

Ưu điểm:

  • Dùng cho production server an toàn hơn personal key
  • Giới hạn quyền theo từng repo
  • Phù hợp CI/CD, auto deploy
  • Có thể cấp read-only hoặc read/write

Deploy key ≠ SSH key cá nhân.


2. Chuẩn bị môi trường

Yêu cầu:

  • Linux server
  • Quyền root hoặc user deploy
  • Repository private/public trên GitHub
  • Git đã cài

Kiểm tra git:

git --version

Nếu chưa có:

apt install git -y

3. Tạo SSH deploy key trên server

Tạo key mới:

ssh-keygen -t ed25519 -C "deploy-key"

Khi hỏi nơi lưu:

/root/.ssh/deploy_key

Bỏ passphrase nếu dùng automation.

Sau khi tạo xong sẽ có:

/root/.ssh/deploy_key
/root/.ssh/deploy_key.pub

4. Cấp quyền file SSH

Bảo mật SSH yêu cầu quyền đúng:

chmod 700 /root/.ssh
chmod 600 /root/.ssh/deploy_key
chmod 644 /root/.ssh/deploy_key.pub

5. Copy public key lên GitHub

Xem public key:

cat /root/.ssh/deploy_key.pub

Copy toàn bộ nội dung.

Vào GitHub:

Repository → Settings → Deploy Keys → Add deploy key

Điền:

  • Title: tên server
  • Key: dán public key
  • Allow write access: tick nếu cần push

Lưu lại.


6. Cấu hình SSH alias

Tạo file config:

nano /root/.ssh/config

Thêm nội dung:

Host github-deploy
  HostName github.com
  User git
  IdentityFile /root/.ssh/deploy_key
  IdentitiesOnly yes

Ý nghĩa:

  • tạo alias github-deploy
  • buộc SSH dùng deploy key
  • tránh xung đột nhiều key

7. Test kết nối SSH

Chạy:

ssh -T git@github-deploy

Lần đầu sẽ hỏi:

Are you sure you want to continue connecting?

Gõ:

yes

Nếu thành công:

You've successfully authenticated

8. Clone repository

Clone vào thư mục mới

git clone git@github-deploy:username/repo.git

Clone trực tiếp vào thư mục hiện tại

Di chuyển vào web root:

cd /var/www/project

Clone vào thư mục hiện tại:

git clone git@github-deploy:username/repo.git .

Dấu . nghĩa là clone vào thư mục hiện tại.

⚠️ Thư mục phải trống.


9. Kiểm tra repo

git status

Nếu hiển thị branch → clone thành công.


10. Lỗi thường gặp & cách xử lý

❌ Permission denied (publickey)

Nguyên nhân:

  • key sai path
  • quyền file sai
  • chưa add deploy key vào repo

Fix:

chmod 600 /root/.ssh/deploy_key

Kiểm tra config path đúng:

IdentityFile /root/.ssh/deploy_key

❌ Host key verification failed

Fix:

rm /root/.ssh/known_hosts

Test lại SSH:

ssh -T git@github-deploy

Gõ:

yes

❌ No such identity

SSH đang tìm key sai thư mục.

Đảm bảo key nằm ở:

/root/.ssh/deploy_key

❌ Thư mục không trống khi clone

Git sẽ từ chối clone vào thư mục có file.

Xoá sạch hoặc clone vào thư mục khác.


11. Best practice production

  • mỗi repo dùng 1 deploy key riêng
  • không dùng personal SSH key trên server
  • dùng alias SSH để quản lý nhiều repo
  • backup thư mục .ssh
  • hạn chế write access nếu không cần push

12. Kết luận

Deploy key giúp:

  • server truy cập repo an toàn
  • tách biệt quyền user
  • dễ tích hợp CI/CD
  • phù hợp production

Quy trình chuẩn:

Tạo key → add GitHub → config SSH → test → clone

Bài viết liên quan:

Tích hợp liên tục / Triển khai liên tục (CI/CD) với Git
Tích hợp AI với GitHub
Các lệnh và thao tác Git nâng cao
Phân nhánh, Gộp nhánh và Giải quyết xung đột
Các lệnh Git cơ bản và Quản lý Commit
Giới thiệu về Hệ thống Quản lý Phiên bản (VCS), Git và GitHub

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

Hướng dẫn triển khai GitHub Deploy Key qua SSH trên Linux Server

Giới thiệu mongoDB

Tích hợp liên tục / Triển khai liên tục (CI/CD) với Git

Xử lý tệp tin (File Handling)

Tích hợp AI với GitHub

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×