SFTP là giao thức truyền file an toàn, giúp trao đổi dữ liệu giữa máy tính và máy chủ thông qua kết nối SSH. Vậy SFTP là gì, hoạt động như thế nào, có ưu nhược điểm gì và cách sử dụng ra sao? Bài viết dưới đây của Tenten sẽ giúp bạn hiểu rõ […]
SFTP là một giao thức mạng cho phép truyền tải, truy cập và quản lý tệp tin hoặc thư mục an toàn giữa máy tính cá nhân và máy chủ từ xa.
SFTP dùng để truyền tải, quản lý và chỉnh sửa tập tin từ xa giữa máy khách (client) và máy chủ (server).
SFTP hoạt động theo mô hình Client-Server trên một cổng duy nhất (mặc định là 22), thiết lập kết nối bảo mật bằng cách xác thực khóa SSH hoặc mật khẩu rồi mã hóa toàn bộ luồng dữ liệu.
SFTP mã hóa cả thông tin đăng nhập lẫn nội dung tập tin, giúp ngăn chặn hiệu quả các cuộc tấn công nghe lén, giả mạo hoặc đánh cắp dữ liệu trên đường truyền.
FTP truyền dữ liệu không mã hóa (kém an toàn). FTPS là FTP được nâng cấp thêm mã hóa SSL/TLS. SFTP sử dụng mã hóa SSH và có cơ chế hoạt động hoàn toàn khác biệt.
SFTP là giao thức truyền file an toàn, giúp trao đổi dữ liệu giữa máy tính và máy chủ thông qua kết nối SSH. Vậy SFTP là gì, hoạt động như thế nào, có ưu nhược điểm gì và cách sử dụng ra sao? Bài viết dưới đây của Tenten sẽ giúp bạn hiểu rõ những thông tin cần thiết để sử dụng SFTP hiệu quả và an toàn.
SFTP (Secure File Transfer Protocol hoặc SSH File Transfer Protocol) là một giao thức mạng cho phép bạn truyền tải, truy cập và quản lý tệp an toàn giữa máy tính cá nhân và máy chủ từ xa.
SFTP hỗ trợ các thao tác như upload, download, đổi tên, xóa và quản lý file/thư mục trên server.
Khác với FTP, SFTP không phải là phiên bản FTP được bổ sung SSL/TLS. Đây là một giao thức truyền file hoạt động trên SSH, nhờ đó dữ liệu và thông tin xác thực được bảo vệ trong quá trình kết nối.
SFTP thường sử dụng port 22 theo mặc định, tuy nhiên quản trị viên có thể thay đổi port này tùy theo cấu hình của server.

SFTP được sử dụng chủ yếu để truyền và quản lý dữ liệu giữa máy tính với server một cách an toàn:
SFTP (SSH File Transfer Protocol) hoạt động dựa trên nền tảng của giao thức SSH (Secure Shell). Toàn bộ dữ liệu và lệnh điều khiển được mã hóa trong suốt quá trình truyền dẫn.
Quá trình truyền tải tệp qua SFTP diễn ra theo các bước cơ bản sau:

SFTP sử dụng port 22 theo mặc định, tương tự SSH. Tuy nhiên, quản trị viên có thể thay đổi cổng này tùy theo cấu hình máy chủ.
Để kết nối SFTP, bạn cần cung cấp đúng các thông tin gồm host (địa chỉ máy chủ), port, username và phương thức xác thực. Nếu server sử dụng cổng khác 22, bạn cần nhập đúng cổng đã được cấu hình.
SFTP hỗ trợ nhiều phương thức xác thực khác nhau, phổ biến nhất gồm:
Có. SFTP rất an toàn vì toàn bộ dữ liệu và thông tin xác thực đều được mã hóa thông qua nền tảng của giao thức SSH (Secure Shell).
Dưới đây là chi tiết về mức độ an toàn của các phương thức xác thực mà SFTP sử dụng:
1 – Username và Password (Tên đăng nhập và Mật khẩu)
2 – SSH Key (Cặp khóa công khai và riêng tư)
SSH key gồm một cặp mã hóa thay thế cho mật khẩu truyền thống:
3 – Passphrase bảo vệ Private Key
Passphrase là một cụm mật khẩu dùng để mã hóa chính file Private Key trên máy tính của bạn. Ngay cả khi ai đó đánh cắp được file Private Key của bạn, họ vẫn không thể sử dụng nó nếu không có Passphrase này, tạo thêm một lớp bảo mật thứ hai.
4 – Phương thức khác tùy cấu hình server
Tùy vào quản trị viên hệ thống, SFTP có thể kết hợp thêm các phương thức như:

Giao thức SFTP mang lại khả năng bảo mật dữ liệu vượt trội nhờ cơ chế mã hóa toàn diện của SSH, tuy nhiên việc quản lý và cấu hình các khóa xác thực lại khá phức tạp và đòi hỏi kỹ năng chuyên môn cao.
SFTP sở hữu nhiều đặc điểm nổi bật giúp bảo vệ dữ liệu và tối ưu quá trình quản trị từ xa:

Bên cạnh các lợi ích về mặt bảo mật, việc sử dụng SFTP cũng tồn tại một số hạn chế nhất định như sau:
FTP (File Transfer Protocol), FTPS (FTP Secure) và SFTP (SSH File Transfer Protocol) đều là các giao thức dùng để truyền tải tệp tin nhưng khác nhau hoàn toàn về cơ chế hoạt động và mức độ bảo mật.
Bảng so sánh chi tiết
|
Tiêu chí |
FTP |
FTPS |
SFTP |
|
Giao thức nền tảng |
FTP thuần |
FTP + SSL/TLS |
SSH (Secure Shell) |
|
Cổng kết nối (Ports) |
Port 21 (điều khiển), Port 20 hoặc dải động (dữ liệu) |
Port 21 (Explicit) hoặc Port 990 (Implicit) + dải port dữ liệu |
Chỉ dùng 1 port duy nhất (thường là Port 22) |
|
Mã hóa dữ liệu |
Không có (Dễ bị nghe lén) |
Có mã hóa (SSL/TLS) |
Có mã hóa (Toàn bộ phiên làm việc qua SSH) |
|
Thân thiện với Firewall |
Kém (Khó qua tường lửa do dùng nhiều port dữ liệu động) |
Kém (Vẫn cần mở nhiều port cho kênh dữ liệu) |
Rất tốt (Chỉ cần mở 1 port SSH duy nhất) |
|
Cơ chế xác thực |
Tên đăng nhập và mật khẩu |
Tên đăng nhập, mật khẩu và chứng chỉ SSL |
Mật khẩu hoặc Khóa SSH (SSH Keypair) |
|
Độ phức tạp |
Thấp, dễ triển khai |
Trung bình (cần quản lý chứng chỉ SSL) |
Trung bình đến cao (quản lý key SSH) |
Lựa chọn giữa SFTP, FTP hay FTPS phụ thuộc vào hạ tầng sẵn có, yêu cầu bảo mật và tính tương thích của hệ thống.
Để dễ dàng đưa ra quyết định chính xác cho hệ thống của bạn, hãy đối chiếu nhu cầu thực tế với bảng hướng dẫn quyết định nhanh dưới đây:
|
Nhu cầu |
Giao thức khuyên dùng |
Lưu ý triển khai |
|
Server hiện tại đã bật SSH và cần bảo mật bằng SSH key |
SFTP |
Không cần cài thêm phần mềm mới, chỉ cần cấp quyền truy cập file qua tài khoản SSH sẵn có. |
|
Bạn cần một kênh kết nối bảo mật nhưng thiết lập đơn giản |
SFTP |
Tối ưu nhất vì chỉ cần mở duy nhất một cổng mạng (Port 22) trên Firewall. |
|
Hệ thống của đối tác bắt buộc sử dụng giao thức FTP kết hợp mã hóa TLS |
FTPS |
Lưu ý cấu hình dải cổng động (Passive ports) trên tường lửa để tránh lỗi bị chặn kết nối dữ liệu. |
|
Hệ thống cũ/thiết bị ngoại vi cũ không hỗ trợ SFTP hoặc FTPS |
FTP |
Bắt buộc phải dùng FTP thuần, nhưng cần đánh giá rủi ro nghiêm ngặt (ví dụ: chỉ chạy trong mạng LAN nội bộ, không mở ra Internet). |
|
Cần truyền tải file sao lưu (backup) hệ thống hoặc dữ liệu cá nhân của khách hàng |
SFTP hoặc FTPS |
Tuyệt đối không dùng FTP thuần. Lộ dữ liệu backup đồng nghĩa với việc lộ toàn bộ mã nguồn hoặc cơ sở dữ liệu. |
Để kết nối SFTP, bạn cần có thông tin đăng nhập của máy chủ và một công cụ hỗ trợ như WinSCP trên Windows hoặc Terminal trên Linux, macOS. Sau khi xác thực thành công, bạn có thể truy cập thư mục được cấp quyền để truyền và quản lý file.
Trước khi kết nối SFTP, bạn cần chuẩn bị các thông tin sau:
Trên Windows, bạn có thể sử dụng WinSCP để kết nối SFTP thông qua giao diện trực quan mà không cần nhập lệnh. Các bước thực hiện như sau:

Trên Linux và macOS, bạn có thể sử dụng lệnh sftp trong Terminal để kết nối trực tiếp đến server mà không cần cài thêm phần mềm nếu hệ thống đã có sẵn OpenSSH client.
Bước 1: Nhập lệnh kết nối
Mở Terminal và chạy lệnh sau, thay <port>, <username> và <host> bằng thông tin máy chủ thực tế:
sftp -P <port> <username>@<host>
Ví dụ, kết nối đến server 192.0.2.10 bằng tài khoản admin qua port 22:
sftp -P 22 admin@192.0.2.10
Bước 2: Xác thực và đăng nhập
Bước 3: Kiểm tra thư mục và thao tác file
Sau khi đăng nhập thành công, sử dụng các lệnh cơ bản sau:
Lưu ý: Nếu kết nối không thành công, hãy kiểm tra lại host, port, thông tin xác thực và quyền truy cập trên server.
Dưới đây là bảng tổng hợp chi tiết các lệnh SFTP phổ biến giúp bạn thao tác nhanh chóng và hiệu quả hơn:
|
Nhu cầu |
Lệnh |
|
Xem thư mục từ xa |
ls |
|
Chuyển thư mục từ xa |
cd |
|
Xem thư mục cục bộ |
lls hoặc lpwd |
|
Tải file |
get |
|
Upload file |
put |
|
Tải nhiều file |
mget |
|
Upload nhiều file |
mput |
|
Tiếp tục tải file bị gián đoạn |
reget, reput |
|
Upload/download thư mục |
put -r, get -r |
|
Tạo thư mục |
mkdir |
|
Đổi tên |
rename |
|
Xóa file |
rm |
|
Thoát |
bye hoặc exit |
Dưới đây là bảng tổng hợp các lỗi SFTP thường gặp, nguyên nhân, cách kiểm tra và cách khắc phục chi tiết:
|
Lỗi |
Nguyên nhân thường gặp |
Cách kiểm tra |
Cách sửa |
|
Connection refused |
Server hoặc port không nhận kết nối |
Kiểm tra dịch vụ SSH và port đang hoạt động |
Khởi động lại dịch vụ SSH, kiểm tra cấu hình port |
|
Permission denied |
Tài khoản không đủ quyền truy cập |
Kiểm tra user hiện tại và phân quyền (permission) của thư mục/file |
Cấp quyền phù hợp cho tài khoản (chẳng hạn dùng chmod hoặc chown) |
|
Authentication failed |
Sai mật khẩu hoặc lỗi xác thực SSH key |
Kiểm tra lại thông tin đăng nhập hoặc file khóa (key) |
Nhập đúng mật khẩu hoặc cấu hình lại quyền file SSH key (chmod 600) |
|
Connection timed out |
Mạng chậm, mất kết nối hoặc firewall đang chặn |
Kiểm tra kết nối mạng và tường lửa (firewall/security group) |
Mở port trên firewall, kiểm tra địa chỉ IP và trạng thái mạng |
|
No such file or directory |
Sai đường dẫn đến thư mục hoặc tên file |
Kiểm tra lại đường dẫn hiện tại (pwd, ls) |
Nhập chính xác đường dẫn tuyệt đối hoặc tương đối của file/thư mục cần thao tác |
Cấu hình và quản lý SFTP đúng cách giúp hệ thống của bạn tránh được các nguy cơ tấn công và rò rỉ dữ liệu quan trọng:
