Bỏ qua tới nội dung
Kiến thức Website· ·12 phút đọc

SFTP là gì, khác FTP và FTPS ra sao và vì sao nên dùng khi kết nối hosting

Nguyen Hien
SFTP là gì, khác FTP và FTPS ra sao và vì sao nên dùng khi kết nối hosting
Cỡ chữ

SFTP là gì và liên quan thế nào tới SSH

SFTP (SSH File Transfer Protocol, giao thức truyền file qua SSH) là giao thức dùng để chuyển file giữa máy tính và server một cách bảo mật. Điểm khác biệt cốt lõi so với FTP là SFTP chạy hoàn toàn trên nền SSH (Secure Shell, giao thức kết nối bảo mật), kế thừa toàn bộ cơ chế mã hoá và xác thực của SSH.

Chỗ này hay gây nhầm: SFTP không phải là “FTP có mã hoá”. Về mặt kỹ thuật, SFTP là một giao thức độc lập được thiết kế từ đầu để hoạt động trên nền SSH, không liên quan gì đến giao thức FTP gốc. Giao thức “FTP có mã hoá” thật sự là FTPS, và FTPS cũng khác SFTP hoàn toàn về cấu trúc. Bài FTP là gì có giải thích thêm về FTP gốc và lý do tại sao FTP không an toàn.

Vì SFTP chạy trên SSH, nó dùng cùng cổng 22 với SSH. Chỉ một kênh kết nối duy nhất thay vì hai kênh của FTP, nên đơn giản hơn khi cấu hình tường lửa và ít gặp lỗi kết nối hơn.

Sơ đồ SFTP là gì, chạy trên nền SSH: SSH thiết lập kênh bảo mật, xác thực người dùng, SFTP chạy trong kênh SSH đã mã hoá, file được truyền an toàn trong đường hầm mã hoá
SFTP là giao thức con chạy bên trong kênh SSH, kế thừa toàn bộ cơ chế mã hoá của SSH

FTP, FTPS và SFTP khác nhau ở điểm nào

Ba cái tên nghe tương tự nhưng khác nhau đáng kể về cách hoạt động và mức độ bảo mật. Đây là bảng so sánh để dễ phân biệt:

Tiêu chíFTPFTPSSFTP
Nền tảngGiao thức FTP gốc (1971)FTP cộng thêm TLS/SSLGiao thức mới, chạy trên SSH
Cổng mặc định21 (lệnh) + 20 (dữ liệu)21 hoặc 990 + dải cổng cao22 (một cổng duy nhất)
Mã hoáKhông cóTLS (lớp trên FTP)SSH (toàn bộ kết nối)
Số kênh kết nối2 kênh riêng2 kênh riêng1 kênh duy nhất
Cấu hình tường lửaPhức tạp (2 cổng)Phức tạp hơn (nhiều cổng)Đơn giản (chỉ mở cổng 22)
Khuyến nghịKhông nên dùngĐược, nhưng phức tạp hơnKhuyến nghị mặc định

Nếu hosting hỗ trợ cả FTPS lẫn SFTP, chọn SFTP. Cả hai đều mã hoá tốt, nhưng SFTP đơn giản hơn về cấu hình và ít gặp sự cố tường lửa hơn.

Sơ đồ so sánh chi tiết ba giao thức truyền file FTP, FTPS và SFTP: FTP không mã hoá, FTPS thêm TLS vào FTP gốc, SFTP là giao thức độc lập chạy trên nền SSH với một kênh duy nhất
Ba giao thức truyền file khác nhau về nền tảng, cổng, mã hoá và độ phức tạp cấu hình

Vì sao SFTP an toàn hơn và được khuyến nghị

SFTP an toàn hơn FTP vì mọi thứ được mã hoá: tên đăng nhập, mật khẩu, nội dung file, lệnh gửi và kết quả nhận về. Người nghe lén trên đường truyền chỉ thấy dữ liệu mã hoá, không đọc được gì.

Nhưng bảo mật của SFTP không chỉ đến từ mã hoá. SFTP hỗ trợ hai kiểu xác thực: xác thực bằng mật khẩu và xác thực bằng khoá SSH. Xác thực bằng khoá SSH mạnh hơn đáng kể vì không có mật khẩu nào để đoán hay brute-force, và khoá riêng không bao giờ đi qua đường truyền.

So sánh hai kiểu xác thực SFTP: khoá SSH khuyến nghị vì khoá riêng giữ trên máy không bị đoán được; mật khẩu thông thường dễ thiết lập nhưng có thể bị brute-force
Khoá SSH là lựa chọn bảo mật hơn cho SFTP, nhất là khi kết nối tự động hay thường xuyên

Với chủ website cá nhân hay doanh nghiệp nhỏ, dùng mật khẩu để xác thực SFTP vẫn chấp nhận được nếu mật khẩu đủ mạnh và không dùng lại từ nơi khác. Khoá SSH nên ưu tiên khi cần tự động hoá (script chạy tự động, CI/CD, backup định kỳ) hoặc khi quản trị VPS và server riêng. Bài SSH là gì giải thích cách tạo và dùng khoá SSH.

Kết nối SFTP thực tế qua FileZilla

FileZilla hỗ trợ SFTP sẵn có, không cần cài thêm gì. Cách thiết lập một kết nối SFTP mới:

Sơ đồ bốn bước kết nối SFTP qua FileZilla: mở Site Manager, chọn Protocol là SFTP và Port 22, nhập hostname và thông tin đăng nhập, kết nối và xác nhận host key lần đầu
Kết nối SFTP trong FileZilla chỉ khác FTP ở bước chọn Protocol và đổi port

Mở File > Site Manager rồi nhấn New Site. Ở mục Protocol, chọn SFTP thay vì FTP. Port sẽ tự điền 22, hoặc bạn nhập 22 nếu chưa tự điền. Nhập hostname (địa chỉ IP hoặc tên miền hosting), username và password từ email hosting. Nhấn Connect.

Lần đầu kết nối SFTP, FileZilla hiện hộp thoại hỏi bạn có tin tưởng server này không, kèm fingerprint (dấu vân tay nhận diện server). Đây là tính năng bảo mật của SSH, không phải lỗi. Nhấn OK để tiếp tục, FileZilla sẽ nhớ fingerprint này cho lần sau. Nếu lần sau fingerprint thay đổi bất ngờ, đó mới là dấu hiệu cần kiểm tra lại.

Nếu đang có kết nối FTP cũ trong Site Manager, không cần xoá, chỉ cần tạo thêm kết nối mới dạng SFTP là được. Sau khi xác nhận SFTP hoạt động bình thường, có thể xoá kết nối FTP cũ đi.

Bốn lỗi kết nối SFTP hay gặp và cách xử lý

Phần lớn sự cố SFTP không nằm ở phần mềm mà nằm ở cấu hình phía hosting. Bốn tình huống dưới đây chiếm gần hết số lần kết nối không lên.

Báo “Connection refused” ngay lập tức: cổng 22 chưa mở hoặc hosting không bật SSH. Nhiều gói shared hosting giá thấp tắt SSH mặc định, phải mở trong bảng điều khiển hoặc gửi yêu cầu cho nhà cung cấp. Cũng có nhà cung cấp đổi SFTP sang cổng khác cổng 22 vì lý do an ninh, khi đó bạn phải nhập đúng số cổng họ cấp.

Kết nối được nhưng không thấy thư mục website: tài khoản SSH thường mở ở thư mục gốc của người dùng, không phải thư mục chứa web. Thư mục web hay nằm ở public_html, www hoặc httpdocs tuỳ nhà cung cấp. Vào đúng thư mục đó rồi mới thấy các file WordPress quen thuộc.

Đăng nhập bị từ chối dù mật khẩu đúng: nhiều hosting tách riêng tài khoản FTP và tài khoản SSH. Mật khẩu FTP không dùng được cho SFTP. Kiểm tra lại trong phần quản lý SSH của bảng điều khiển xem tài khoản SSH là cái nào.

Cảnh báo fingerprint thay đổi: nếu bạn vừa đổi hosting hoặc nhà cung cấp vừa dựng lại máy chủ thì đây là chuyện bình thường, xác nhận lại là xong. Nhưng nếu không có thay đổi nào mà fingerprint đột nhiên khác, hãy dừng lại và liên hệ nhà cung cấp trước khi nhập mật khẩu, vì đó có thể là dấu hiệu bị chen giữa kết nối.

Khi cần đẩy toàn bộ mã nguồn hoặc sao lưu trước lúc chuyển nhà, quy trình đầy đủ nằm ở bài chuyển hosting không mất dữ liệu.

Những nhầm lẫn thường gặp khi nhắc đến SFTP

Ba nhầm lẫn hay gặp nhất, và cách phân biệt nhanh:

Nhầm SFTP và FTPS: Hai cái này khác hoàn toàn. SFTP chạy trên nền SSH, dùng cổng 22, là giao thức độc lập. FTPS là FTP gốc được thêm TLS, vẫn dùng cổng 21, vẫn dùng 2 kênh. Trong FileZilla, SFTP và FTPS là hai lựa chọn khác nhau trong danh sách Protocol. Chọn sai giao thức sẽ không kết nối được.

Nhầm SFTP và SCP: SCP (Secure Copy Protocol, giao thức sao chép bảo mật) cũng chạy trên nền SSH và dùng cổng 22. Điểm khác là SCP chỉ làm được một việc là sao chép file, không xem được thư mục, không đổi tên hay xoá file trên server theo cách tương tác. SFTP làm được tất cả những thao tác đó. Với chủ website dùng FileZilla hay phần mềm tương tự, SFTP là lựa chọn phù hợp hơn.

Tưởng cần tài khoản riêng cho SFTP: Hầu hết hosting dùng cùng username và password cho cả FTP lẫn SFTP. Bạn không cần tạo thêm tài khoản mới, chỉ cần đổi giao thức và cổng trong phần mềm kết nối. Nếu hosting yêu cầu tạo tài khoản SFTP riêng, thường có hướng dẫn trong phần cài đặt của cPanel hoặc Plesk. Thông tin về hosting cũ hay mới bạn có thể xem thêm ở bài hosting là gìVPS là gì để biết phân biệt các loại.

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

Hosting của tôi có hỗ trợ SFTP không?

Hầu hết hosting chất lượng đều hỗ trợ. Cách kiểm tra nhanh nhất là thử kết nối trong FileZilla với Protocol là SFTP và Port là 22. Nếu vào được, hosting hỗ trợ. Nếu không, hỏi nhà cung cấp hosting vì đây là tính năng cơ bản nên có.

SFTP chậm hơn FTP không?

Về lý thuyết, mã hoá tốn thêm một chút tài nguyên CPU. Trên thực tế, tốc độ truyền file phụ thuộc vào đường truyền internet và tốc độ server nhiều hơn là thuật toán mã hoá. Người dùng bình thường không nhận ra sự khác biệt.

Khi nào nên dùng khoá SSH thay vì mật khẩu cho SFTP?

Khoá SSH phù hợp khi cần kết nối tự động, không muốn nhập mật khẩu mỗi lần, hoặc muốn tắt hoàn toàn đăng nhập bằng mật khẩu trên server để giảm rủi ro bị brute-force. Với kết nối SFTP thông thường từ phần mềm như FileZilla, mật khẩu mạnh là đủ.

Có thể dùng SFTP để kết nối với cPanel không?

Kết nối SFTP vào hosting để quản lý file (đẩy lên, kéo về, đổi tên) thì được. Nhưng SFTP là giao thức truyền file, không thay thế giao diện web của cPanel. Để quản lý email, database, subdomain và các cài đặt hosting khác, vẫn phải vào cPanel qua trình duyệt.

Đọc tiếp

Bài viết
cùng chủ đề.

Tất cả bài viết