SFTP là một giao thức truyền tệp an toàn, hoạt động trên nền tảng của SSH để đảm bảo mọi dữ liệu đều được mã hóa và bảo vệ trong suốt quá trình truyền tải. Bài viết này mình sẽ giúp bạn hiểu rõ hơn về SFTP, từ cơ chế hoạt động, các ưu điểm vượt trội, cách sử dụng và những lưu ý quan trọng để triển khai hiệu quả.
Các điểm chính
- Khái niệm SFTP: SFTP là giao thức truyền tệp an toàn sử dụng lớp bảo mật SSH để mã hóa toàn bộ dữ liệu trong quá trình truyền tải.
- Cách thức hoạt động của SFTP: Hoạt động qua một kết nối SSH duy nhất trên cổng 22, nơi mọi quá trình xác thực và truyền dữ liệu đều được mã hóa.
- Ưu điểm và nhược điểm của SFTP: Ưu điểm là bảo mật cao và quản lý tệp hiệu quả; nhược điểm là thiết lập phức tạp hơn và tốc độ có thể chậm hơn FTP.
- Lợi ích khi sử dụng SFTP: Cung cấp bảo mật hàng đầu, đơn giản hóa cấu hình tường lửa và cho phép quản lý tệp từ xa một cách linh hoạt.
- Hướng dẫn sử dụng SFTP: Có thể kết nối thông qua dòng lệnh hoặc các phần mềm có giao diện đồ họa như FileZilla và WinSCP.
- So sánh SFTP với FTP và SCP: SFTP vượt trội hơn FTP về bảo mật và linh hoạt hơn SCP trong việc quản lý tệp từ xa.
- Khắc phục các lỗi SFTP thường gặp: Các lỗi phổ biến như từ chối quyền truy cập hay kết nối thường được giải quyết bằng cách kiểm tra quyền và cấu hình tường lửa.
- Chọn lựa SFTP server hiệu quả: Cần ưu tiên các nhà cung cấp VPS/Server có đường truyền ổn định, bảo mật hạ tầng tốt và hỗ trợ kỹ thuật nhanh chóng.
- Giải đáp các thắc mắc thường gặp về SFTP.
SFTP là gì?
SFTP (Secure File Transfer Protocol hoặc SSH File Transfer Protocol) là một giao thức mạng được thiết kế để truy cập, truyền và quản lý file một cách an toàn giữa máy khách và máy chủ thông qua kết nối Internet hoặc mạng cục bộ. SFTP sử dụng lớp bảo mật SSH, nhờ đó mọi dữ liệu – bao gồm cả thông tin đăng nhập, file truyền đi và các lệnh quản lý đều được mã hóa nhằm đảm bảo tính bảo mật và toàn vẹn dữ liệu trong suốt quá trình truyền tải.

SFTP hoạt động như thế nào?
Cơ chế hoạt động của SFTP rất an toàn và đơn giản. Toàn bộ quá trình diễn ra bên trong một đường hầm bảo mật duy nhất.
- Khởi tạo kết nối: Client khởi tạo một kết nối SSH đến server.
- Xác thực bảo mật: Quá trình xác thực người dùng bằng mật khẩu hoặc khóa SSH diễn ra hoàn toàn bên trong kênh SSH đã được mã hóa. Điều này ngăn chặn bất kỳ hành vi nghe lén mật khẩu nào.
- Thiết lập kênh SFTP: Sau khi xác thực thành công, một kênh giao tiếp SFTP được thiết lập.
- Truyền dữ liệu mã hóa: Tất cả các lệnh quản lý tệp và chính dữ liệu của tệp đều được đóng gói và truyền qua kênh SSH đã được mã hóa này.

Một ưu điểm lớn là SFTP chỉ sử dụng duy nhất cổng 22, giúp việc cấu hình tường lửa trở nên cực kỳ đơn giản.
Ưu điểm và nhược điểm của SFTP
Bảo mật cao: SFTP mã hóa toàn bộ dữ liệu và thông tin xác thực khi truyền tải qua mạng, giúp bảo vệ tệp tin khỏi nguy cơ bị đánh cắp hoặc truy cập trái phép.
Xác thực linh hoạt: Hỗ trợ xác thực bằng keypair ngoài tên người dùng và mật khẩu, tăng mức độ an toàn cho hệ thống.
Dễ dàng tích hợp: SFTP thân thiện với tường lửa, chỉ sử dụng một cổng cho toàn bộ quá trình truyền tải, thuận tiện cấu hình và giảm bớt rủi ro bị tấn công qua các cổng mở.
Quản lý hiệu quả: Hỗ trợ các thao tác quản lý tệp tin từ xa như di chuyển, đổi tên, xóa, kiểm tra thuộc tính,… cùng với tính năng tiếp tục truyền tải khi bị gián đoạn.
Tương thích đa nền tảng: SFTP hoạt động ổn định trên nhiều hệ điều hành và dễ dàng tích hợp vào các hệ thống tồn tại.
Thiết lập, vận hành phức tạp: Việc triển khai SFTP, nhất là cấu hình và quản lý khóa xác thực SSH, đòi hỏi kiến thức chuyên sâu hơn so với FTP thông thường.
Yêu cầu quản lý khóa bảo mật: Khóa riêng phải lưu trữ an toàn trên thiết bị truyền tệp, nếu bị mất hoặc lộ thông tin có thể dẫn đến rủi ro bảo mật.
Khả năng tương thích: Các phần mềm SFTP của những nhà cung cấp khác nhau đôi khi chưa chuẩn hóa hoàn toàn, có thể phát sinh vấn đề tương thích trong một số trường hợp.
Tốc độ có thể bị ảnh hưởng: Vì dữ liệu luôn được mã hóa, quá trình truyền tệp lớn có thể chậm hơn so với FTP truyền thống, nhất là trên các máy chủ có tài nguyên hạn chế.
Lợi ích khi sử dụng SFTP
Việc chuyển sang dùng SFTP mang lại nhiều lợi ích thiết thực:
- Bảo mật hàng đầu: Cả thông tin đăng nhập và dữ liệu tệp đều được mã hóa mạnh mẽ bởi SSH, bảo vệ bạn khỏi các cuộc tấn công xen giữa.
- Đơn giản cấu hình mạng: Chỉ cần mở duy nhất cổng 22 trên tường lửa, không còn phải đau đầu với các dải cổng phức tạp như FTP.
- Quản lý tệp linh hoạt: SFTP không chỉ để truyền tệp, bạn có thể thực hiện nhiều thao tác quản lý trên server từ xa như liệt kê (
ls), xóa (rm), hay tạo thư mục (mkdir). - Đáng tin cậy: Giao thức được thiết kế để đảm bảo tính toàn vẹn của gói tin, đồng thời nhiều client hỗ trợ tính năng tiếp tục tải lại các tệp bị gián đoạn.
- Xác thực mạnh mẽ: Bạn có thể dùng mật khẩu hoặc sử dụng khóa SSH, một phương thức xác thực an toàn hơn rất nhiều so với mật khẩu truyền thống.

Hướng dẫn chi tiết cách sử dụng SFTP
Bạn có thể kết nối SFTP thông qua dòng lệnh hoặc các phần mềm có giao diện đồ họa.
Các cách kết nối SFTP phổ biến
Sử dụng dòng lệnh
Trên macOS, Linux hoặc Windows (với PowerShell hoặc WSL) bạn có thể kết nối trực tiếp qua Terminal.
Cú pháp cơ bản:
sftp user@hostname_hoac_ipuser: Tên người dùng trên server.hostname_hoac_ip: Tên miền hoặc địa chỉ IP của server.
Cú pháp nâng cao (dùng SSH key và cổng tùy chỉnh):
sftp -i /duong/dan/den/private_key -P port_number user@hostname_hoac_ip-i: Chỉ định đường dẫn đến tệp private key của bạn.-P: Chỉ định cổng SSH nếu server không dùng cổng 22 mặc định.
Sử dụng SFTP Client đồ họa
Nếu bạn không quen dùng dòng lệnh thì các client có giao diện đồ họa là lựa chọn tuyệt vời. Một số client phổ biến và uy tín bao gồm:
- FileZilla (Windows, macOS, Linux).
- WinSCP (chỉ dành cho Windows).
- Cyberduck (macOS, Windows).
Cách kết nối trên các client này về cơ bản là giống nhau:
- Mở client và tìm mục New Connection hoặc Site Manager.
- Ở phần giao thức, chọn SFTP – SSH File Transfer Protocol.
- Nhập các thông tin:
- Host: Địa chỉ IP hoặc tên miền của server.
- Port: Điền 22 (hoặc cổng tùy chỉnh nếu có).
- Username: Tên người dùng của bạn.
- Chọn phương thức xác thực:
- Password: Nhập mật khẩu của bạn.
- Key File: Chỉ đường dẫn đến tệp private key.
- Nhấn Connect.

Các lệnh SFTP cơ bản trên dòng lệnh
Sau khi kết nối thành công, bạn có thể dùng các lệnh trên Linux sau để quản lý tệp. Các lệnh này khá giống với lệnh trên Linux.
| Lệnh | Chức năng |
|---|---|
help hoặc ? | Hiển thị danh sách các lệnh có sẵn. |
pwd | Hiển thị thư mục hiện tại trên server. |
lpwd | Hiển thị thư mục hiện tại trên máy local. |
ls | Liệt kê các tệp và thư mục trên server. |
lls | Liệt kê các tệp và thư mục trên máy local. |
cd [thư mục] | Chuyển đến thư mục khác trên server. |
lcd [thư mục] | Chuyển đến thư mục khác trên máy local. |
get [tệp_trên_server] | Tải một tệp từ server về máy local. |
put [tệp_trên_local] | Tải một tệp từ máy local lên server. |
mget [nhiều tệp] | Tải nhiều tệp cùng lúc (có thể dùng ký tự đại diện, ví dụ: mget *.zip). |
mput [nhiều tệp] | Tải lên nhiều tệp cùng lúc (ví dụ: mput images/*.jpg). |
mkdir [tên_thư_mục] | Tạo một thư mục mới trên server. |
rm [tên_tệp] | Xóa một tệp trên server. |
rmdir [tên_thư_mục] | Xóa một thư mục rỗng trên server. |
bye hoặc exit | Đóng kết nối SFTP. |
Ví dụ một phiên làm việc cơ bản:
$ sftp user@123.45.67.89
Connected to 123.45.67.89.
sftp> cd /var/www/html
sftp> ls -l
-rw-r--r-- 1 www-data www-data 10918 Apr 1 15:00 index.html
sftp> get index.html
Fetching /var/www/html/index.html to index.html
sftp> put style.css
Uploading style.css to /var/www/html/style.css
sftp> byeKhi cần đồng bộ một thư mục chứa nhiều ảnh hoặc file log, mình thường dùng
mget *.jpghoặcmput log-*.txt. Các lệnh này kết hợp với ký tự đại diện (*) giúp tiết kiệm cực kỳ nhiều thời gian so với việc tải từng tệp một.
Khắc phục các lỗi SFTP thường gặp
Trong quá trình sử dụng, bạn có thể gặp một số lỗi. Dưới đây là các lỗi phổ biến và cách xử lý.
Permission denied
- Nguyên nhân: Người dùng của bạn không có quyền đọc/ghi trên thư mục hoặc tệp đó.
- Giải pháp: Đăng nhập vào server bằng SSH, dùng lệnh
ls -lđể kiểm tra quyền. Sau đó dùngchmodhoặcchownđể cấp quyền phù hợp.
Connection refused / Connection timed out
- Nguyên nhân: Thường do một trong ba lý do: Dịch vụ SSH trên server chưa chạy, tường lửa chặn cổng 22, hoặc bạn nhập sai địa chỉ IP/hostname.
- Giải pháp:
- Kiểm tra dịch vụ SSH trên server:
sudo systemctl status sshd(trên CentOS/Ubuntu). - Kiểm tra tường lửa server:
sudo ufw status(trên Ubuntu) và đảm bảo cổng 22 được phép (ALLOW). - Kiểm tra lại thông tin Host/IP bạn đã nhập.
- Kiểm tra dịch vụ SSH trên server:
Host key verification failed
- Nguyên nhân: Dấu vân tay của server đã thay đổi thường xảy ra khi bạn cài lại hệ điều hành cho server.
- Giải pháp: Xóa dòng chứa IP/hostname của server cũ trong tệp
~/.ssh/known_hoststrên máy tính của bạn, sau đó kết nối lại.
Authentication failed
- Nguyên nhân: Sai mật khẩu, sai đường dẫn đến SSH key, hoặc public key của bạn chưa được thêm vào tệp
~/.ssh/authorized_keystrên server. - Giải pháp: Kiểm tra lại mật khẩu hoặc đường dẫn đến file key. Đảm bảo nội dung public key đã được sao chép chính xác vào file
authorized_keystrên server. - Đối với lỗi liên quan đến cơ sở dữ liệu, bạn có thể tham khảo cách xử lý lỗi error establishing a database connection của WordPress.

So sánh SFTP với FTP và SCP
Để thấy rõ ưu điểm, hãy so sánh nhanh SFTP với hai giao thức phổ biến khác là FTP và SCP.
| Tiêu chí | FTP (File Transfer Protocol) | SFTP (SSH File Transfer Protocol) | SCP (Secure Copy Protocol) |
|---|---|---|---|
| Bảo mật | Không mã hóa, mọi dữ liệu đều ở dạng văn bản thuần. | Mã hóa mạnh. Toàn bộ phiên làm việc được mã hóa thông qua giao thức SSH, bảo vệ dữ liệu và thông tin xác thực. | Mã hóa mạnh. Tương tự SFTP, SCP cũng chạy trên nền SSH và mã hóa toàn bộ dữ liệu truyền đi. |
| Giao thức nền tảng | TCP/IP | SSH (Secure Shell) | SSH (Secure Shell) |
| Cổng sử dụng | Port 21 cho lệnh và Port 20 cho dữ liệu. | Port 22 (sử dụng chung cổng với SSH). | Port 22 (sử dụng chung cổng với SSH). |
| Tính năng | Cung cấp các lệnh quản lý tệp cơ bản (liệt kê, xóa, đổi tên thư mục). | Rất nhiều tính năng. Cho phép quản lý tệp và thư mục từ xa một cách toàn diện (tạo, xóa, đổi tên, thay đổi quyền) và hỗ trợ nối lại quá trình truyền tệp bị gián đoạn. | Rất cơ bản. Chỉ dùng để sao chép tệp tin từ điểm này đến điểm khác. Không có tính năng liệt kê hay quản lý thư mục. |
| Hiệu suất | Nhanh vì không có chi phí mã hóa. | Chậm hơn một chút so với SCP và FTP do quá trình đóng gói và mã hóa gói tin phức tạp hơn. | Nhanh hơn SFTP. Giao thức đơn giản, ít chi phí xử lý hơn nên truyền tệp nhanh hơn, đặc biệt trên các mạng có độ trễ cao. |
| Độ tin cậy | Trung bình, dễ bị gián đoạn. | Rất tốt, hỗ trợ resume và kiểm tra tính toàn vẹn dữ liệu. | Tốt, nhưng không có tính năng resume. |
Chọn lựa và sử dụng SFTP server hiệu quả
Hầu hết các máy chủ Linux đã có sẵn OpenSSH đồng nghĩa với việc SFTP đã sẵn sàng để sử dụng. Tuy nhiên, nếu bạn cần một nơi lưu trữ backup, một điểm trung chuyển dữ liệu an toàn thì việc xây SFTP server riêng là một ý tưởng hay. Các nền tảng như VPS hoặc Cloud Server là lựa chọn linh hoạt nhất.
Khi chọn nhà cung cấp VPS/Server để dựng SFTP server, bạn cần quan tâm đến các tiêu chí:
- Tốc độ và ổn định: Đường truyền mạng mạnh, uptime cao để đảm bảo kết nối không bị gián đoạn.
- Bảo mật hạ tầng: Nền tảng có các lớp bảo vệ chống tấn công DDoS cơ bản để bảo vệ server của bạn. Trong bối cảnh an ninh mạng ngày càng phức tạp đây là yêu cầu bắt buộc.
- Hỗ trợ kỹ thuật: Đội ngũ hỗ trợ sẵn sàng giúp đỡ khi có sự cố về mạng hoặc phần cứng.
- Vị trí máy chủ: Chọn vị trí gần người dùng cuối để giảm độ trễ, tăng tốc độ truyền tệp.

Trong các dự án cần một nơi lưu trữ và trao đổi file an toàn thường nên ưu tiên sử dụng VPS để tự dựng SFTP server vì tính chủ động và bảo mật. Các gói VPS của Vietnix đáp ứng tốt các tiêu chí về tốc độ, ổn định và hỗ trợ, hạ tầng của Vietnix cho phép dễ dàng cài đặt OpenSSH và cấu hình một SFTP server tin cậy chỉ trong vài phút. Đây là một lựa chọn đáng cân nhắc nếu bạn đang tìm kiếm một nền tảng chất lượng.
Câu hỏi thường gặp
SFTP có mặc định được bật trên mọi máy chủ Linux có SSH không?
Hầu hết là có. SFTP là một hệ thống con tiêu chuẩn của OpenSSH server. Nếu bạn cài đặt và chạy dịch vụ SSH, gần như chắc chắn SFTP đã sẵn sàng để sử dụng.
Làm thế nào để tạo người dùng SFTP chỉ có quyền truy cập vào một thư mục cụ thể?
Bạn có thể làm điều này bằng cách sử dụng chỉ thị ChrootDirectory trong file cấu hình SSH (/etc/ssh/sshd_config). Kỹ thuật này được gọi là Jail SFTP, giúp nhốt người dùng trong một thư mục chỉ định, tăng cường bảo mật.
SFTP và FTPS khác nhau như thế nào?
Chúng hoàn toàn khác nhau. SFTP là một phần của SSH, chạy trên một kênh mã hóa duy nhất qua cổng 22. FTPS là giao thức FTP cũ được bọc thêm lớp mã hóa SSL/TLS, có thể yêu cầu nhiều cổng và phức tạp hơn trong việc cấu hình tường lửa.
Có cần mở thêm cổng nào khác ngoài 22 cho SFTP không?
Không. Tất cả mọi thứ từ xác thực đến truyền dữ liệu đều diễn ra trên một kết nối duy nhất qua cổng 22. Đây chính là một trong những ưu điểm lớn nhất của SFTP.
SFTP không chỉ là bản thay thế mà là bản nâng cấp toàn diện của FTP với bảo mật vượt trội nhờ SSH. Trong thời đại an ninh mạng phức tạp, chuyển từ FTP sang SFTP là điều bắt buộc để bảo vệ dữ liệu. Nếu bạn vẫn dùng FTP hãy nâng cấp ngay hôm nay, bắt đầu bằng cách thử kết nối đến server của bạn theo hướng dẫn trên. Nếu muốn tìm hiểu thêm các kiến thức về bảo mật, quản trị web, bạn có thể tham khảo một số bài viết dưới đây của mình.




