Tạo SSH key là bước quan trọng giúp bảo mật quá trình kết nối giữa máy tính cá nhân và server, đặc biệt trong các môi trường phát triển phần mềm như GitHub hay GitLab. Dù bạn là lập trình viên mới bắt đầu hay đang tìm cách nâng cao tính bảo mật cho hệ thống, việc hiểu rõ cơ chế hoạt động và cách triển khai SSH key sẽ giúp tiết kiệm thời gian và tránh các lỗi kết nối không mong muốn. Cùng TopOnTech tìm hiểu về SSH Key là gì và cách tạo SSH key đúng chuẩn để sử dụng trên GitHub, GitLab hoặc server cá nhân nhé.
>>> Xem thêm các bài viết:
- Nguyên nhân và cách khắc phục lỗi bảo mật khi vào web
- Bug Bounty là gì? Tổng quan về chương trình Săn Lỗi Bảo Mật Nhận Tiền
- SQL injection là gì? 4 cách phòng chống SQL injection hiệu quả
Mục lục
ToggleSSH key là gì?
SSH key (viết tắt của Secure Shell key) là một cặp khóa mã hóa gồm public key (khóa công khai) và private key (khóa riêng tư), được sử dụng trong giao thức SSH để xác thực người dùng khi truy cập vào máy chủ từ xa. Cơ chế này giúp bảo mật quá trình truyền dữ liệu, đồng thời loại bỏ nhu cầu nhập mật khẩu mỗi lần đăng nhập.
Trong cặp khóa này, public key sẽ được lưu trên máy chủ đích, còn private key được giữ an toàn trên máy tính cá nhân. Khi người dùng cố gắng kết nối đến server, hệ thống sẽ xác minh tính khớp của hai khóa để cho phép truy cập. Nhờ đó, SSH key được xem là phương thức xác thực an toàn hơn so với việc sử dụng mật khẩu truyền thống. Việc tạo SSH key giúp lập trình viên, quản trị viên hệ thống và người dùng kỹ thuật khác dễ dàng thiết lập kết nối đến GitHub, GitLab hoặc các máy chủ nội bộ một cách bảo mật và tiện lợi hơn.
>>> Xem thêm:
- Scrubbing Center là gì? Cách Scrubbing Center chống lại các mối đe dọa
- DNS là gì? Tổng quan về cách cấu hình DNS trong hệ thống
- Ethical Hacking là gì? Vai trò và cách hoạt động của Ethical Hacking

Cơ chế xác thực bằng SSH Key
Bên cạnh cách đăng nhập bằng mật khẩu, giao thức SSH còn hỗ trợ xác thực bằng SSH key – một phương thức bảo mật phổ biến và đáng tin cậy hơn. Cơ chế này sử dụng hai thành phần chính: public key (khóa công khai) và private key (khóa riêng tư).
- Public key là một tệp văn bản được lưu trữ trên máy chủ đích.
- Private key là tệp tương ứng được giữ kín trên máy tính cá nhân của người dùng
Khi bạn tạo SSH key bằng công cụ như ssh-keygen, hệ thống sẽ sinh ra cặp khóa này. Trong quá trình kết nối, máy chủ sẽ gửi một yêu cầu (challenge) đến thiết bị của bạn. Máy tính sẽ dùng private key để mã hóa yêu cầu đó và gửi lại. Nếu máy chủ có thể giải mã thành công bằng public key đã lưu, kết nối sẽ được thiết lập mà không cần nhập mật khẩu.
Phương pháp xác thực này không chỉ bảo mật hơn, mà còn giúp tự động hóa quy trình đăng nhập trong nhiều công cụ DevOps và dịch vụ như GitHub, GitLab, hay hệ thống CI/CD. Tuy nhiên, private key cần được lưu trữ cẩn thận, vì bất kỳ ai có được tệp này đều có thể truy cập vào máy chủ tương ứng.
>>> Xem thêm:
- Zero Trust là gì? Cách hoạt động và nguyên tắc của Zero Trust
- DNS 8.8.8.8 là gì? Hướng dẫn cách thay đổi DNS 8.8.8.8 dễ dàng
- DNS 1.1 1.1 là gì? Hướng dẫn cách cài đặt và thay đổi DNS 1.1.1.1 nhanh chóng

Hướng dẫn tạo SSH Key (Public/Private) thêm vào tài khoản Gitlab và Github
Trước khi thêm SSH key vào GitHub hay GitLab, bạn sẽ cần tạo SSH key trên máy tính của mình. Quá trình này khá đơn giản và chỉ mất vài phút để hoàn tất.
Kiểm tra SSH key bằng Terminal
Trước khi tạo SSH key, bạn nên kiểm tra xem máy tính đã có SSH key sẵn hay chưa để tránh tạo trùng lặp không cần thiết.
Cách thực hiện:
Bước 1: Mở cửa sổ dòng lệnh trên máy tính.
- Trên macOS hoặc Linux: mở Terminal
- Trên Windows: mở Command Prompt hoặc PowerShell
- Trên Ubuntu: bạn có thể nhấn tổ hợp phím Ctrl + Alt + T để mở nhanh Terminal
Bước 2: Nhập lệnh sau vào cửa sổ dòng lệnh: ls -al ~/.ssh
Bước 3: Quan sát kết quả. Nếu bạn thấy xuất hiện các tệp như:
- id_rsa và id_rsa.pub
- id_ed25519 và id_ed25519.pub
… thì máy tính của bạn đã có SSH key. Trong trường hợp không thấy gì hoặc thư mục .ssh chưa tồn tại, bạn có thể chuyển sang bước tiếp theo để tạo mới.
>>> Xem thêm:
- API là gì? Cách hoạt động và ứng dụng của API trong phát triển web
- Brute Force là gì? Nguyên nhân và cách phòng chống hiệu quả
- OWASP là gì? 10 lỗ hổng và rủi ro bảo mật hàng đầu theo OWASP

Tạo SSH Key
Sau khi kiểm tra và xác định máy chưa có khóa, bạn có thể bắt đầu tạo SSH key bằng dòng lệnh. Quá trình này sẽ tạo ra một cặp khóa gồm public key và private key, giúp xác thực bảo mật cho các kết nối SSH.
Cách thực hiện:
Bước 1: Mở cửa sổ dòng lệnh trên máy (Terminal hoặc Command Prompt/PowerShell).
Bước 2: Nhập lệnh sau để tạo SSH key: ssh-keygen -t ed25519 -C “your_email@example.com“. Trong đó:
- -t ed25519 là thuật toán mã hóa hiện đại, nhẹ và bảo mật cao.
- -C cho phép thêm email để dễ quản lý key.
Gợi ý: Nếu bạn muốn dùng RSA thay vì ED25519, có thể thay lệnh trên bằng:
ssh-keygen -t rsa -b 4096 -C “your_email@example.com”
Bước 3: Khi hệ thống hỏi nơi lưu file:
Enter file in which to save the key (/home/your_user/.ssh/id_ed25519):
Bạn có thể nhấn Enter để dùng đường dẫn mặc định, hoặc nhập đường dẫn tùy chọn nếu muốn đặt tên khác cho SSH key.
Lưu ý:
- Nên để mặc định nếu bạn chỉ dùng một SSH key duy nhất.
- Nếu dùng nhiều key cho nhiều dịch vụ (GitHub, server riêng, v.v.), hãy đặt tên riêng biệt như: /home/your_user/.ssh/id_ed25519_github.
>>> Xem thêm:
- Pentest là gì? Những thông tin cần biết về Penetration Testing
- AES là gì? Tiêu chuẩn mã hóa dữ liệu và các chế độ hoạt động của AES
- RFI là gì? Vai trò của yêu cầu thông tin trong kinh doanh
Nhập passphrase
Sau khi chỉ định nơi lưu file, hệ thống sẽ yêu cầu bạn nhập passphrase (mật khẩu bảo vệ private key). Bạn có thể bỏ qua bằng cách nhấn Enter, nhưng nên đặt passphrase để tăng tính bảo mật cho SSH key, đặc biệt nếu bạn sử dụng key trong môi trường làm việc chuyên nghiệp.
Khi dòng lệnh hiển thị:
Enter passphrase (empty for no passphrase):
bạn có thể:
- Gõ mật khẩu mình muốn đặt rồi nhấn Enter
- Hoặc để trống và nhấn Enter nếu không muốn đặt passphrase
Lưu ý: Trong lúc gõ, mật khẩu sẽ không hiển thị ký tự nào — kể cả dấu *, nên bạn cứ gõ bình thường rồi nhấn Enter. Sau đó, hệ thống sẽ yêu cầu bạn nhập lại passphrase để xác nhận một lần nữa. Việc đặt passphrase sẽ yêu cầu bạn nhập lại mật khẩu mỗi khi dùng SSH key, nhưng đây cũng là lớp bảo vệ quan trọng nếu private key của bạn bị đánh cắp hoặc truy cập trái phép.
>>> Xem thêm:
- WCAG là gì? Cách cải thiện khả năng tiếp cận website của bạn
- PKI là gì? Các ứng dụng Public Key Infrastructure phổ biến
- DNS over HTTPS là gì? Tìm hiểu cách thức hoạt động của DoH

Thêm key vào ssh-agent
Nếu bạn đã thiết lập passphrase ở bước trước, hệ thống sẽ yêu cầu nhập lại mật khẩu mỗi lần sử dụng SSH key. Để tiện hơn, bạn có thể thêm khóa vào ssh-agent – một trình quản lý giúp lưu trữ khóa tạm thời trong phiên làm việc và tự động sử dụng khi cần.
Cách thực hiện:
Bước 1: Kích hoạt ssh-agent (nếu chưa chạy). Nhập lệnh sau vào terminal: eval “$(ssh-agent -s)”
Nếu thành công, hệ thống sẽ trả về một dòng có dạng: Agent pid 59566 (hoặc một số bất kỳ)
Bước 2: Thêm SSH key của bạn vào ssh-agent bằng lệnh: ssh-add ~/.ssh/id_ed25519. Trong đó:
- id_ed25519 là tên file private key bạn đã tạo ở bước trước
- Nếu bạn dùng RSA hoặc đặt tên khác, hãy thay bằng đường dẫn tương ứng, ví dụ: ~/.ssh/id_rsa hoặc ~/.ssh/my_custom_key
Sau bước này, ssh-agent sẽ giữ khóa trong bộ nhớ tạm, giúp bạn kết nối GitHub, GitLab hay server mà không cần nhập passphrase liên tục.
>>> Xem thêm:
- Phần mềm ứng dụng là gì? Ví dụ, chức năng & các phần mềm hay dùng
- SOC là gì? Tìm hiểu Security Operations Center (SOC)
- RSA là gì? Cách mã hóa RSA hoạt động và ứng dụng trong chữ ký số
Thêm SSH public key vào tài khoản trên server – SSH Keygen
Sau khi tạo SSH key thành công, bước tiếp theo là sao chép public key và thêm vào tài khoản GitHub hoặc GitLab. Đây là thao tác cần thiết để xác thực danh tính mà không cần nhập mật khẩu mỗi lần thao tác với kho mã. Bạn có thể sao chép nội dung public key theo hai cách:
- Cách 1: Dùng lệnh để sao chép trực tiếp vào clipboard (chỉ áp dụng với macOS): pbcopy < ~/.ssh/id_ed25519.pub
- Cách 2: Hiển thị nội dung key để tự sao chép thủ công: cat ~/.ssh/id_ed25519.pub
Sau khi chạy lệnh, hãy sao chép toàn bộ nội dung hiển thị trên màn hình — đó là khóa công khai bạn sẽ dán vào tài khoản GitHub hoặc GitLab.
Đối với Github
- Truy cập: https://github.com/settings/keys
- Chọn tab SSH and GPG keys
- Nhấn New SSH key
- Ở phần Title, bạn có thể đặt tên tùy ý để dễ phân biệt nếu có nhiều key (ví dụ: Laptop cá nhân, Máy công ty…)
- Ở phần Key, dán nội dung SSH public key mà bạn đã sao chép
- Nhấn Add SSH key để hoàn tất
Từ giờ, bạn có thể sử dụng Github SSH key để đẩy hoặc kéo mã từ kho GitHub mà không cần nhập mật khẩu mỗi lần kết nối.
>>> Xem thêm:
- Lỗ hổng bảo mật là gì? Tìm hiểu về lỗ hổng website và cách ngăn chặn hiệu quả
- XSS là gì? Cách kiểm tra và ngăn chặn tấn công XSS hiệu quả
- Cyber Security là gì? Tổng hợp 9 loại Cyber Security phổ biến hiện nay

Đối với Gitlab
- Truy cập: https://gitlab.com/-/profile/keys
- Tại trang SSH Keys, dán nội dung public key vào ô Key
- Đặt tên ở ô Title (tuỳ chọn)
- Nhấn Add key để lưu lại
Cách làm tương tự như trên GitHub, chỉ khác về vị trí giao diện.
>>> Xem thêm:
- HTTPS là gì? Điểm khác nhau giữa HTTP và HTTPS?
- DDoS là gì? Dấu hiệu, cách phòng chống và xử lý hiệu quả
- Thiết kế phần mềm theo yêu cầu tại Hà Nội chuyên nghiệp, giá tốt

Kiểm tra kết nối và hoàn tất
Sau khi thêm public key vào GitHub hoặc GitLab, bạn có thể kiểm tra kết nối bằng lệnh sau:
- Với GitHub: ssh -T git@github.com
- Với GitLab: ssh -T git@gitlab.com
Lần đầu kết nối, hệ thống có thể hỏi bạn xác nhận độ tin cậy của máy chủ. Gõ yes rồi nhấn Enter.
Nếu mọi thứ đã được cấu hình đúng, bạn sẽ thấy thông báo như:
- GitHub: “Hi your_username! You’ve successfully authenticated…”
- GitLab: “Welcome to GitLab, @your_username!”
Vậy là bạn đã hoàn tất quá trình tạo SSH key và xác thực thành công.
>>> Xem thêm:
- SHA là gì? Các phiên bản SHA thường sử dụng
- CSRF là gì? Kỹ thuật tấn công và cách phòng chống CSRF hiệu quả
- Mã hóa đầu cuối (End-to-end encryption) là gì? Cách hoạt động của E2EE như thế nào?
Hướng dẫn xác thực bằng SSH Key
Sau khi đã tạo SSH key thành công, bạn cần cấu hình đúng ở cả phía server và client để hệ thống có thể xác thực thông qua cặp khóa. Cụ thể, public key sẽ được lưu trên máy chủ SSH, còn private key sẽ được sử dụng trên máy tính cá nhân để xác thực khi kết nối. Dưới đây là hướng dẫn chi tiết cho từng phần:
Cách cấu hình Public key cho SSH Server
Để máy chủ SSH cho phép xác thực bằng SSH key, bạn cần cấu hình public key như sau:
Bước 1: Tạo cặp SSH key (nếu chưa có) bằng lệnh ssh-keygen trên máy client.
Bước 2: Sao chép public key lên server. Có thể dùng lệnh: ssh-copy-id user@remote_host hoặc thủ công: mở file ~/.ssh/id_ed25519.pub và dán nội dung vào file authorized_keys trên máy chủ.
- Đối với Linux: /home/tên_user/.ssh/authorized_keys
- Đối với Windows Server: C:\Users\tên_user\.ssh\authorized_keys
Bước 3: Cấp quyền cho thư mục và file như sau:
- Thư mục .ssh đặt quyền 700
- File authorized_keys đặt quyền 600
Bước 4: Mở file cấu hình SSH /etc/ssh/sshd_config (Linux) hoặc C:\ProgramData\ssh\sshd_config (Windows) và đảm bảo có các dòng sau:
- PubkeyAuthentication yes
- AuthorizedKeysFile .ssh/authorized_keys
Bước 5: Khởi động lại dịch vụ SSH:
- Trên Linux: sudo service ssh restart
- Trên Windows: khởi động lại dịch vụ OpenSSH Server từ Services
>>> Xem thêm:
- Bảo mật website là gì? Tầm quan trọng và cách giữ cho website an toàn
- Hướng dẫn chi tiết cách bảo mật cho website WordPress tốt nhất
- Cyber Security Analyst là gì? Làm thế nào để trở thành nhà phân tích an ninh mạng?
Cách cấu hình Private key cho SSH Client
Để client sử dụng private key khi kết nối đến máy chủ, hãy làm theo các bước sau:
Bước 1: Đảm bảo private key đã được tạo và lưu tại thư mục ~/.ssh.
Bước 2: Thêm private key vào ssh-agent (nếu bạn đã đặt passphrase): ssh-add ~/.ssh/id_ed25519
Bước 3: Nếu muốn cấu hình sẵn cho mỗi host, bạn có thể tạo file ~/.ssh/config và thêm nội dung như sau:
- Host 192.168.1.52
- PreferredAuthentications publickey
- IdentityFile ~/.ssh/id_ed25519
Bước 4: Kết nối bằng lệnh: ssh user@192.168.1.52
Nếu khóa trùng khớp, bạn sẽ được xác thực mà không cần nhập mật khẩu.
Hy vọng qua bài viết trên, bạn đã hiểu rõ SSH key là gì và biết cách tạo SSH key cũng như cấu hình xác thực bằng public/private key cho GitHub, GitLab hoặc máy chủ từ xa. Việc sử dụng SSH key không chỉ giúp tiết kiệm thời gian mà còn tăng cường bảo mật đáng kể so với phương pháp đăng nhập truyền thống bằng mật khẩu.
TopOnTech là đơn vị tiên phong trong lĩnh vực chuyển đổi số toàn diện, cung cấp các giải pháp thiết kế website, phát triển ứng dụng, và xây dựng hệ thống quản trị tối ưu cho doanh nghiệp.
TopOnTech nổi bật với các gói dịch vụ linh hoạt, cá nhân hóa theo từng nhu cầu cụ thể, giúp doanh nghiệp dễ dàng tiếp cận công nghệ, tối ưu vận hành và nâng cao trải nghiệm khách hàng. Với định hướng “Công nghệ vì con người”, TopOnTech không chỉ mang lại hiệu quả kỹ thuật mà còn tạo kết nối cảm xúc giữa thương hiệu và người dùng.
Khách hàng quan tâm đến các giải pháp số của TopOnTech có thể tìm hiểu thêm tại trang Tin tức.
ĐẶT LỊCH TƯ VẤN VÀ NHẬN GÓI AUDIT WEBSITE MIỄN PHÍ NGAY HÔM NAY tại: https://topon.tech/en/contact/
Thông tin liên hệ TopOnTech:
- Địa chỉ: 31 Hoàng Diệu, Phường 12, Quận 4, Thành phố Hồ Chí Minh, Việt Nam
- Hotline: 0906 712 137
- Email: long.bui@toponseek.com