SFTP là gì? Cách hoạt động, ưu nhược điểm và cách sử dụng

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à gì? Cách hoạt động, ưu nhược điểm và cách sử dụng
Summarize this post with AI
Tóm tắt nhanh

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 là gì?

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 là gì

SFTP dùng để làm gì?

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:

  • Upload mã nguồn, theme, plugin.
  • Upload hình ảnh và tài liệu.
  • Download backup.
  • Quản lý file website.
  • Trao đổi file tự động giữa doanh nghiệp và đối tác.
  • Làm việc với hosting, VPS hoặc cloud server.

SFTP hoạt động như thế nào?

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.

Quy trình kết nối

Quá trình truyền tải tệp qua SFTP diễn ra theo các bước cơ bản sau:

  • SFTP Client: Máy khách (Client) gửi yêu cầu thiết lập kết nối TCP đến máy chủ (SFTP/SSH Server) tại cổng 22.
  • SSH Connection: Máy khách và máy chủ thực hiện quá trình bắt tay SSH (SSH Handshake), trao đổi thông tin về phiên bản giao thức và thuật toán mã hóa để tạo ra một kênh truyền thông tin được mã hóa an toàn.
  • Xác thực: Máy khách gửi thông tin đăng nhập lên máy chủ để xác minh danh tính, có thể sử dụng mật khẩu (password) hoặc cặp khóa SSH (SSH Keypair – gồm Public Key và Private Key).
  • SFTP Server: Sau khi xác thực SSH thành công, máy chủ khởi động một tiến trình con hoặc subsystem SFTP bên trong phiên làm việc SSH đó để xử lý các lệnh quản lý file.
  • Thao tác file: Máy khách gửi các lệnh qua kênh SSH đã mã hóa để thực hiện các thao tác trên file như tải lên, tải xuống, tạo, xóa, hoặc đổi tên file/thư mục trên máy chủ.

Quy trình kết nối qua SFTP

SFTP sử dụng cổng nào?

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 xác thực bằng cách nào?

SFTP hỗ trợ nhiều phương thức xác thực khác nhau, phổ biến nhất gồm:

  • Username/Password: Yêu cầu người dùng nhập tên tài khoản (username) và mật khẩu của máy chủ để đăng nhập. Mật khẩu được mã hóa trong suốt quá trình truyền tải nhờ đường ống SSH.
  • SSH Key (Public/Private Key): Sử dụng khóa công khai (public key – đặt trên máy chủ) và khóa riêng tư (private key – giữ ở máy khách). Máy chủ sẽ yêu cầu máy khách ký một đoạn dữ liệu bằng private key để chứng minh quyền sở hữu.
  • Passphrase: Là một lớp mật khẩu bổ sung (tùy chọn) dùng để mã hóa và khóa tệp tin private key trên máy khách, tăng thêm một tầng bảo vệ nếu máy tính bị xâm nhập.
  • Phương thức khác: Kết hợp giữa xác thực bằng khóa SSH và mật khẩu (two-factor/multi-factor authentication) hoặc xác thực qua chứng chỉ số (certificate-based authentication) tùy theo cấu hình của từng máy chủ.

SFTP có an toàn không?

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)

  • Ưu điểm: Quen thuộc, dễ sử dụng và thiết lập nhanh chóng cho mọi người dùng mà không cần cấu hình kỹ thuật phức tạp.
  • Giới hạn: Dễ bị tấn công bằng hình thức dò mật khẩu (brute-force attacks), dễ bị rò rỉ nếu người dùng đặt mật khẩu yếu hoặc tái sử dụng mật khẩu ở nhiều nơi. 

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: 

  • Ưu điểm: Cực kỳ khó bẻ khóa (với các thuật toán như Ed25519 hay RSA 2048/4096-bit), loại bỏ hoàn toàn nguy cơ bị dò mật khẩu.
  • Hạn chế: Nếu để lộ file Private Key hoặc lưu nó trên một thiết bị không an toàn, kẻ xấu có thể dùng nó để truy cập hệ 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ư:

  • Xác thực đa yếu tố (MFA/2FA): Kết hợp giữa SSH Key và mã OTP từ ứng dụng điện thoại.
  • Xác thực bằng chứng chỉ (Certificate-based authentication): Thường dùng trong các doanh nghiệp lớn để quản lý hàng nghìn máy chủ dễ dàng hơn.

Các phương thức xác thực của SFTP đảm bảo mức độ an toàn

Ưu và nhược điểm của SFTP

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.

Ưu điểm

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ảo mật cao: Toàn bộ dữ liệu truyền tải và thông tin đăng nhập đều được mã hóa, ngăn chặn triệt để tình trạng nghe lén hoặc đánh cắp dữ liệu. 
  • Thân thiện với tường lửa: SFTP hoạt động mặc định trên cổng 22 của SSH, giúp cấu hình tường lửa (firewall) rất dễ dàng mà không cần mở thêm nhiều dải cổng phụ trợ. 
  • Xác thực mạnh mẽ: SFTP hỗ trợ đăng nhập bằng mật khẩu kết hợp hoặc khóa công khai/riêng tư (SSH key pair), giúp chống lại các cuộc tấn công dò mật khẩu.
  • Quản lý tập tin toàn diện: SFTP cho phép người dùng truyền tải, tạo, sửa, xóa hoặc quản lý cấu trúc thư mục trực tiếp trên máy chủ từ xa.

Ưu điểm của SFTP

Nhược điểm

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:

  • Thiết lập và quản lý phức tạp hơn: Việc tạo và cấu hình các khóa xác thực (key pair) đòi hỏi người dùng có kiến thức kỹ thuật nhất định. 
  • Quản lý khóa riêng tư khó khăn: Nếu khóa riêng tư (private key) bị thất lạc hoặc đánh cắp, hệ thống có nguy cơ bị xâm nhập nghiêm trọng nếu không có biện pháp phòng ngừa.
  • Tốc độ có thể chậm hơn: Quá trình mã hóa và giải mã liên tục trong quá trình truyền tải đôi khi làm tốc độ xử lý chậm hơn một chút so với giao thức FTP thuần túy không mã hóa.
  • Hạn chế tương thích: SFTP có thể gặp rào cản tương thích với một số hệ thống hoặc phần mềm cũ chỉ hỗ trợ FTP truyền thống.
  • Phát sinh bước cấu hình: Đối với mạng nội bộ khép kín không yêu cầu bảo mật cao, sử dụng SFTP làm phát sinh thêm các bước cài đặt không cần thiết so với FTP đơn giản.

So sánh SFTP với FTP và FTPS

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)

Nên chọn SFTP, FTP hay FTPS?

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.

Cách kết nối với SFTP

Để 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.

Thông tin cần chuẩn bị

Trước khi kết nối SFTP, bạn cần chuẩn bị các thông tin sau:

  • Host/server: Địa chỉ IP hoặc tên miền của máy chủ cần kết nối.
  • Port: Cổng SFTP, mặc định là 22.
  • Username: Tên tài khoản được cấp quyền truy cập SFTP.
  • Password hoặc private key: Thông tin xác thực theo cấu hình của máy chủ.
  • Thư mục từ xa: Đường dẫn đến thư mục cần thao tác trên server.
  • Quyền truy cập: Tài khoản phải có quyền đọc, ghi hoặc quản lý file theo nhu cầu.

Kết nối SFTP trên Windows

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:

  • Bước 1: Khởi chạy phần mềm, chọn New Site để tạo kết nối mới.
  • Bước 2: Tại mục File protocol, chọn SFTP.
  • Bước 3: Điền địa chỉ server vào Host name, cổng kết nối vào Port và tên tài khoản vào User name.
  • Bước 4: Nhập mật khẩu tại Password hoặc cấu hình private key trong phần Advanced nếu sử dụng SSH key.
  • Bước 5: Nhấn Login. Khi được yêu cầu xác nhận host key lần đầu, hãy kiểm tra dấu vân tay khóa máy chủ trước khi chấp nhận.
  • Bước 6: Sau khi đăng nhập thành công, sử dụng hai khung giao diện để kéo thả file giữa máy tính và server hoặc tải file về thiết bị.

Kết nối SFTP trên Windows

Kết nối SFTP trên Linux và macOS

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

  • Nếu được yêu cầu xác nhận host key khi kết nối lần đầu, hãy kiểm tra dấu vân tay khóa máy chủ với thông tin do quản trị viên cung cấp trước khi chấp nhận.
  • Nhập mật khẩu khi được yêu cầu. Nếu sử dụng SSH key, hãy bảo đảm client đã được cấu hình đúng khóa riêng tương ứng với public key trên server.

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:

  • pwd: Kiểm tra thư mục hiện tại trên server.
  • ls: Liệt kê file và thư mục từ xa.
  • cd <đường_dẫn>: Chuyển đến thư mục cần thao tác.
  • put <tên_file>: Tải file từ máy tính lên server.
  • get <tên_file>: Tải file từ server về máy tính.
  • bye: Kết thúc phiên SFTP.

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.

Các lệnh SFTP thường dùng

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

Các lỗi SFTP thường gặp và cách khắc phục

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

Lưu ý bảo mật khi sử dụng SFTP

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:

  • Bảo vệ private key: Luôn đặt mật khẩu (passphrase) cho khóa riêng tư và không chia sẻ file này với bất kỳ ai.
  • Giới hạn quyền user: Chỉ cấp quyền truy cập, chẳng hạn như dùng chroot vào đúng thư mục cần thiết thay vì toàn bộ hệ thống file.
  • Không dùng tài khoản root nếu không cần: Hãy tạo các tài khoản người dùng riêng biệt với quyền hạn tối thiểu để thực hiện việc truyền tải file.
  • Đổi port không thay thế cho các biện pháp bảo mật khác: Lưu ý đổi cổng SSH/SFTP mặc định (port 22) chỉ giúp giảm bớt lượng quét tự động (noise), không phải là giải pháp bảo mật chính.
  • Cập nhật SSH server: Thường xuyên cập nhật các bản vá bảo mật mới nhất cho phần mềm SSH/SFTP trên máy chủ.
  • Kiểm soát firewall: Chỉ cho phép các địa chỉ IP đáng tin cậy kết nối đến cổng dịch vụ SFTP.
  • Kiểm tra log đăng nhập: Thường xuyên theo dõi lịch sử kết nối để phát hiện sớm các hành vi dò mật khẩu hoặc truy cập trái phép.

Lưu ý bảo mật khi sử dụng SFTP

Câu hỏi thường gặp

SFTP có phải là FTP không?
Không. SFTP không phải là FTP. SFTP (SSH File Transfer Protocol) là một giao thức hoàn toàn khác được xây dựng dựa trên nền tảng SSH, thay vì mở rộng từ giao thức FTP truyền thống.
SFTP có an toàn hơn FTP không?
Có. SFTP an toàn hơn FTP rất nhiều. SFTP mã hóa cả dữ liệu lẫn thông tin đăng nhập trong suốt quá trình truyền tải, trong khi FTP gửi mọi thứ dưới dạng văn bản thuần túy (clear text) nên dễ bị đánh cắp.
SFTP có cần SSH không?
Có. SFTP bắt buộc phải có SSH. Giao thức này chạy trực tiếp bên trong một luồng dữ liệu bảo mật của SSH (thường qua cổng 22) để thiết lập kết nối mã hóa giữa máy khách và máy chủ.
Có thể sử dụng SFTP trên Windows không?
Có. Bạn hoàn toàn có thể dùng SFTP trên Windows. Bạn có thể sử dụng các ứng dụng phổ biến như WinSCP, FileZilla, hoặc kích hoạt tính năng OpenSSH Client có sẵn trong command prompt của Windows.
SFTP có thể upload và download file không?
Có. SFTP hỗ trợ đầy đủ các thao tác truyền tải tập tin hai chiều bao gồm upload (tải lên), download (tải về), cùng các lệnh quản lý file như xóa, tạo thư mục và đổi tên.
SFTP khác FTPS như thế nào?
SFTP sử dụng giao thức SSH để bảo mật toàn bộ dữ liệu qua một cổng duy nhất (cổng 22). Trong khi đó, FTPS là FTP truyền thống được mã hóa bằng TLS/SSL, sử dụng nhiều cổng khác nhau để truyền dữ liệu.
Tâm Trần Đức
Giám đốc Khối Kinh doanh Hạ tầng Internet

Trần Đức Tâm là chuyên gia về hạ tầng Internet, Domain, Hosting, Cloud và chuyển đổi số, với nhiều năm kinh nghiệm phát triển các dịch vụ Internet tại Việt Nam và Nhật Bản. Ông hiện là Giám đốc Khối Kinh doanh Hạ tầng Internet tại GMO-Z.com RUNSYSTEM, từng giữ các vị trí lãnh đạo tại Onamae.com, Tenten.vn và Z.com Việt Nam. Các bài viết của ông tập trung vào tên miền, hosting, VPS, email doanh nghiệp, SSL và hạ tầng Internet.