Hướng Dẫn Tạo và Kết Nối EC2 Qua SSH Chi Tiết Từng Bước (2026)
Danh Mục Bài Viết
Mình nhớ lần đầu tạo EC2, mất cả buổi chiều chỉ vì quên mở port 22 trong Security Group. Rồi lại mất thêm 30 phút vì không biết file .pem cần đổi permission thành 400. Những lỗi ngớ ngẩn đó không ai dạy trong tutorial — họ chỉ nói SSH vào instance là xong. Bài này sẽ không bỏ qua bước nào.

EC2 Instance là gì và SSH hoạt động thế nào?
EC2 (Elastic Compute Cloud) là máy chủ ảo trên AWS — bạn thuê CPU, RAM, storage theo giờ, không cần mua phần cứng thật. Khi instance đang chạy, nó hoạt động như một máy chủ Linux/Windows bình thường trên internet.
SSH (Secure Shell) là giao thức mã hoá để bạn đăng nhập vào máy chủ từ xa qua terminal. AWS dùng key pair thay cho mật khẩu — an toàn hơn nhiều. Bạn giữ file .pem (private key), AWS giữ public key trong instance. Hai bên bắt tay bằng cryptography — không cần nhập password.
Trước khi SSH được, bạn cần 3 thứ đúng hết: (1) instance đang chạy và có IP public, (2) Security Group cho phép port 22 từ IP của bạn, (3) file .pem đúng và có permission hợp lệ.
Bước 1: Tạo Key Pair trước khi Launch Instance
Nhiều người tạo instance xong mới nghĩ đến key pair — sai thứ tự. Key pair phải có TRƯỚC khi launch. Không có cách nào thêm key pair vào instance đang chạy mà không có workaround phức tạp.
Vào EC2 Console → Key Pairs → Create key pair:
- Name: đặt tên có nghĩa, ví dụ
myapp-prod-key - Key pair type: chọn
RSA(tương thích rộng nhất) - Private key file format:
.pemnếu dùng Mac/Linux/OpenSSH trên Windows;.ppknếu dùng PuTTY trên Windows cũ
Nhấn Create key pair — file sẽ tự download ngay. Lưu file này cẩn thận. AWS không lưu private key — mất file là mất quyền truy cập instance vĩnh viễn (trừ recovery phức tạp qua EBS detach).
Mẹo: Tạo một thư mục
~/.ssh/aws-keys/để gom tất cả file .pem của các dự án. Đặt tên theo patternproject-env-region.pemđể dễ quản lý khi có nhiều instance.
Bước 2: Launch EC2 Instance với đúng cấu hình

Vào EC2 Console → Instances → Launch instances. Các mục quan trọng:
- AMI: Chọn
Amazon Linux 2023hoặcUbuntu Server 24.04 LTS(cả hai đều nằm trong Free Tier). Username mặc định khác nhau: Amazon Linux dùngec2-user, Ubuntu dùngubuntu. - Instance type:
t2.microhoặct3.microcho Free Tier. - Key pair: Chọn key pair vừa tạo ở Bước 1.
- Network settings: Đây là phần hay bị bỏ qua. Click Edit để cấu hình Security Group.
Trong phần Security Group, thêm Inbound rule:
- Type: SSH
- Port: 22
- Source:
My IP(AWS tự điền IP hiện tại của bạn — bảo mật hơn0.0.0.0/0)
Nhấn Launch instance, chờ 1-2 phút để instance chuyển sang trạng thái running.
Bước 3: Kết nối SSH từ Mac/Linux
Copy Public IPv4 address từ EC2 Console. Mở terminal:
Đầu tiên, set permission cho file .pem — bước này bắt buộc, SSH từ chối kết nối nếu file quá mở:
chmod 400 ~/.ssh/aws-keys/myapp-prod-key.pemSau đó kết nối:
ssh -i ~/.ssh/aws-keys/myapp-prod-key.pem [email protected]Thay ec2-user bằng ubuntu nếu dùng Ubuntu AMI. Thay IP bằng Public IPv4 của instance.
Lần đầu kết nối sẽ hỏi xác nhận fingerprint:
The authenticity of host '54.123.45.67' can't be established.
ECDSA key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no/[fingerprint])? yesGõ yes và Enter. Từ lần sau sẽ không hỏi nữa.
Lỗi Permission denied (publickey) thường do 3 nguyên nhân: (1) sai username (ec2-user vs ubuntu), (2) file .pem chưa chmod 400, (3) key pair không khớp với instance. Kiểm tra theo thứ tự này trước khi làm gì khác.
Bước 4: Kết nối từ Windows
Windows 10/11 đã có OpenSSH built-in — dùng Command Prompt hoặc PowerShell, lệnh SSH giống hệt Mac/Linux ở trên. Chỉ cần chú ý đường dẫn file:
ssh -i C:\Users\YourName\.ssh\myapp-prod-key.pem [email protected]Nếu gặp lỗi permission trên Windows, chuột phải vào file .pem → Properties → Security → Advanced → Disable inheritance → chỉ giữ lại user hiện tại có quyền Full Control, xoá hết các entry khác.
Với Windows cũ hoặc muốn dùng GUI: tải PuTTY. Cần convert file .pem sang .ppk bằng PuTTYgen trước (Load → .pem → Save private key → .ppk). Sau đó trong PuTTY: Host Name = IP, Port = 22, Connection → SSH → Auth → Private key file = đường dẫn .ppk.
FAQ — Những câu hỏi hay gặp
Q: Instance đang chạy nhưng SSH vẫn Connection timed out — lỗi gì?A: 99% là Security Group chưa mở port 22, hoặc đã mở nhưng giới hạn IP cũ (IP của bạn thay đổi). Vào EC2 → Security Groups → chỉnh Inbound rules → đổi Source thành My IP mới. Không phải lỗi instance.
Q: Dùng IP public hay DNS public để SSH?A: Cả hai đều được. Lưu ý: IP public thông thường thay đổi mỗi lần stop/start instance — nếu muốn IP cố định, gán Elastic IP (miễn phí khi instance đang chạy, tính phí khi không dùng).
Q: Có thể SSH vào instance Windows không?A: Windows EC2 thường dùng RDP (port 3389) thay vì SSH. Vào EC2 Console → chọn instance → Connect → RDP client → Get password (cần file .pem để decrypt). Cài Remote Desktop Connection trên máy bạn để kết nối.
Khi SSH xanh lá lần đầu — cảm giác đó không quên được
Lần đầu nhìn thấy prompt [ec2-user@ip-172-31-xx-xx ~]$ xuất hiện trong terminal, bạn sẽ hiểu tại sao DevOps và Cloud Engineer lại nghiện cái này. Bạn vừa kết nối với một máy chủ đang chạy ở đâu đó trên thế giới, chỉ với một dòng lệnh.
Bước tiếp theo tự nhiên: cài Nginx, deploy ứng dụng đầu tiên, hoặc khám phá cách gắn EBS volume để mở rộng storage. AWS EC2 chỉ là điểm bắt đầu — hệ sinh thái phía sau còn rộng hơn nhiều.
