SFTP Linux là một giao thức chạy trên nền SSH, dùng để kết nối tới server và upload/download, quản lý file từ xa một cách an toàn hơn FTP thường. Khác với giao thức FTP truyền thống, SFTP hoạt động dựa trên nền tảng của giao thức SSH, giúp toàn bộ phiên làm việc đều được mã hóa hoàn toàn, đảm bảo tính bảo mật và vẹn toàn dữ liệu. Trong bài viết dưới đây, mình sẽ hướng dẫn bạn chi tiết cách sử dụng SFTP để truyền file nhanh chóng, an toàn.
Những điểm chính
- Khái niệm: Hiểu rõ SFTP là giao thức truyền tải file an toàn chạy trên nền tảng SSH và sự khác biệt so với FTP truyền thống.
- Các tùy chọn quan trọng: Nắm vững các tham số kỹ thuật để tùy chỉnh cổng kết nối, xác thực bằng SSH key và nén dữ liệu giúp tăng tốc độ truyền tải.
- Các trường hợp sử dụng: Xác định những tình huống tối ưu để dùng SFTP trong việc duyệt thư mục trực quan và quản lý dữ liệu trên môi trường Production.
- Lợi ích của SFTP: Thấy rõ giá trị về bảo mật toàn diện, tính thân thiện với tường lửa và khả năng bảo toàn thuộc tính dữ liệu khi sao lưu.
- Cách kết nối nhanh: Làm chủ thao tác khởi tạo phiên làm việc SFTP tới máy chủ với một câu lệnh đơn giản và nhanh chóng.
- Các lệnh cơ bản: Biết cách sử dụng put, get, ls, cd để điều hướng và truyền tải dữ liệu mượt mà giữa máy tính cá nhân và server.
- Ví dụ thực tế: Thực hành thành thạo việc upload mã nguồn website và tải file log từ server về local thông qua các bước chỉ dẫn chi tiết.
- Cách dùng nâng cao: Biết cách viết script thực thi tự động để tối ưu hóa quy trình quản trị hệ thống mà không cần nhập lệnh thủ công.
- So sánh SFTP, SCP và RSYNC: Biết cách lựa chọn công cụ truyền tải phù hợp nhất tùy theo nhu cầu tương tác thủ công hay đồng bộ dữ liệu lớn.
- Lưu ý quan trọng: Nắm vững các quy tắc về quyền sở hữu file, cấu hình Chroot Jail và xử lý file ẩn để đảm bảo an toàn hệ thống.
- Câu hỏi thường gặp: Giải đáp các câu hỏi thường gặp liên quan đến SFTP.
SFTP Linux là gì?
SFTP Linux là một giao thức truyền file an toàn chạy trên nền SSH, cho phép người dùng upload, download và thao tác với file giữa máy tính cá nhân và máy chủ từ xa. Điểm đặc biệt của SFTP là giao thức này không hoạt động độc lập mà chạy trực tiếp trên nền tảng của giao thức SSH, giúp SFTP nhận được toàn bộ cơ chế bảo mật của SSH mà không cần phải cài đặt thêm một máy chủ FTP riêng biệt. Cú pháp tiêu chuẩn để khởi tạo kết nối SFTP như sau:
sftp [options] user@hostVí dụ, để kết nối tới IP 1.2.3.4, bạn thực hiện lệnh sau:
sftp root@1.2.3.4
Các tùy chọn quan trọng của SFTP
Dưới đây là bảng các tùy chọn thường được sử dụng khi khởi chạy SFTP:
| Option | Ý nghĩa | Ví dụ |
|---|---|---|
| -P | Chỉ định port SSH nếu server dùng port khác 22. | sftp -P 2222 user@host |
| -i | Sử dụng SSH key để xác thực thay vì mật khẩu. | sftp -i key.pem user@host |
| -C | Nén dữ liệu để tăng tốc độ truyền tải. | sftp -C user@host |
| -v | Hiển thị thông tin chi tiết để gỡ lỗi. | sftp -v user@host |
Các trường hợp cần sử dụng lệnh SFTP
SFTP lại là lựa chọn tối ưu cho các kịch bản quản trị đòi hỏi tính linh hoạt và kiểm soát cao:
- Nhu cầu tương tác và kiểm tra dữ liệu trực quan: Khác với cơ chế của scp khi buộc người dùng phải nhớ chính xác đường dẫn, SFTP cho phép bạn duyệt qua cấu trúc thư mục, kiểm tra kỹ kích thước hay thời gian sửa đổi của file trực tiếp trên máy chủ trước khi quyết định tải về, giúp tránh sai sót.
- Tối ưu hóa quy trình làm việc đa nhiệm: Thay vì phải chạy lại lệnh và nhập mật khẩu cho từng thao tác riêng lẻ, SFTP duy trì một phiên kết nối liên tục, cho phép bạn thực hiện hàng loạt tác vụ hỗn hợp như upload, download, đổi tên hay xóa nhiều file cùng lúc một cách liền mạch.
- Đảm bảo an toàn và kiểm soát lỗi trên môi trường Production: Đối với các hệ thống quan trọng, SFTP cung cấp không gian thao tác cẩn trọng hơn, giúp quản trị viên dễ dàng rà soát quyền hạn và xác nhận tính toàn vẹn của dữ liệu ngay sau khi truyền tải.

Những lợi ích khi sử dụng SFTP
Dưới đây là những lợi ích khi sử dụng giao thức SFTP trong quản trị hệ thống:
- Tính bảo mật cao: SFTP có thể mã hóa luồng lệnh xác thực và dữ liệu truyền đi, loại bỏ hoàn toàn nguy cơ bị nghe lén hay lộ thông tin tài khoản.
- Thân thiện với hạ tầng mạng: SFTP chỉ sử dụng một kênh kết nối duy nhất cho cả việc điều khiển và truyền dữ liệu, giúp việc cấu hình Tường lửa và NAT trở nên đơn giản, gọn nhẹ hơn rất nhiều so với cơ chế mở nhiều dải port phức tạp của FTP.
- Khả năng quản lý file toàn diện: Không chỉ dừng lại ở việc upload/download, SFTP cung cấp một môi trường tương tác đầy đủ cho phép quản trị viên thực hiện các thao tác quản lý file trực tiếp trên server như: xóa, đổi tên, thay đổi quyền hạn hay tạo thư mục mà không cần thoát ra để dùng SSH riêng.
- Bảo toàn thuộc tính dữ liệu: Khi truyền tải, SFTP hỗ trợ giữ nguyên các thông tin meta quan trọng của file như thời gian khởi tạo, thời gian chỉnh sửa và các thuộc tính phân quyền, đảm bảo tính nhất quán của dữ liệu khi thực hiện sao lưu hoặc đồng bộ hệ thống.

Cách dùng SFTP kết nối nhanh tới server
Để kết nối nhanh tới server thông qua giao thức SFTP, bạn hãy sử dụng câu lệnh sau:
sftp user@serverSau khi kết nối thành công, bạn sẽ bước vào chế độ tương tác với giao diện dòng lệnh giống như FTP truyền thống nhưng được bảo mật hoàn toàn bằng SSH.

Các lệnh cơ bản và phổ biến trong SFTP Linux
Di chuyển và xem thư mục
Khi đang trong giao diện SFTP, bạn có thể điều hướng giữa máy chủ và máy cá nhân bằng các lệnh:
pwd: Xem đường dẫn thư mục hiện tại trên server.lpwd: Xem đường dẫn thư mục hiện tại trên máy cá nhân.ls: Liệt kê danh sách file trên server.lls: Liệt kê danh sách file trên máy cá nhân.cd /path: Chuyển thư mục trên server.lcd /path: Chuyển thư mục trên máy cá nhân.
Upload file
Để tải một file từ máy cá nhân lên server, bạn dùng lệnh như sau:
put file.txt
Nếu muốn upload cả một thư mục, bạn thêm tùy chọn -r với cú pháp lệnh dưới đây:
put -r website
Download file
Để tải file từ server về máy cá nhân, bạn dùng lệnh như sau:
get file.txt
Tương tự, để download cả thư mục, bạn chạy lệnh như sau:
get -r website
Xóa file trên server
Để xóa một file trên server, bạn thực hiện lệnh dưới đây:
rm file.txt
Thoát khỏi giao diện SFTP
Để đóng kết nối và thoát khỏi giao diện SFTP, bạn gõ lệnh như dưới đây:
exit
Các ví dụ sử dụng lệnh SFTP thực tế
1. Upload website lên server
Để tải toàn bộ mã nguồn website lên thư mục web của server, bạn thực hiện chuỗi thao tác sau:
# 1. Đầu tiên, bạn kết nối vào server:
sftp user@server
# 2. Tiếp theo, bạn chuyển đến thư mục web trên server bằng lệnh sau:
cd /var/www/html
# 3. Cuối cùng, bạn chạy lệnh dưới đây để upload toàn bộ thư mục bao gồm cả thư mục con:
put -r website/
2. Tải log từ server về local
Để tải file log lỗi về máy cá nhân nhằm mục đích kiểm tra, bạn dùng lệnh:
# 1. Trước tiên, bạn Chuyển đến thư mục chứa log trên Server bằng lệnh dứoi đây:
cd /var/log
# 2. Sau đó, bạn tải file log về bằng lệnh sau:
get error.log 
Cách sử dụng lệnh SFTP nâng cao
Bạn có thể soạn sẵn một script để SFTP thực thi tự động mà không cần nhập tay từng dòng lệnh. Ví dụ, để tự động upload file backup, bạn thực hiện lệnh dưới đây:
sftp user@server <<EOF
cd /backup
put backup.sql
exit
EOF
Cách này thường được dùng trong các cron job hoặc script quản trị hệ thống, giúp gửi sẵn một loạt lệnh cho SFTP chạy tự động giống như bạn đang gõ tay trong phiên làm việc sftp>.
So sánh tổng quan SCP, SFTP và RSYNC
Dưới đây là bảng so sánh tổng quan 3 công cụ là SCP, SFTP và RSYNC:
| Tiêu chí | SCP | SFTP | RSYNC |
|---|---|---|---|
| Cơ chế hoạt động | Sao chép tuyến tính. | Phiên tương tác như File Explorer. | Đồng bộ thông minh và chỉ chép phần thay đổi. |
| Hiệu suất | Nhanh với file nhỏ, chậm với file lớn. | Trung bình. | Rất nhanh, được tối ưu băng thông nhờ thuật toán Delta. |
| Khả năng Resume | Không có | Có hỗ trợ bằng lệnh reput/reget. | Rất tốt, tự động nối lại khi mất mạng. |
| Tính tương tác | Không. | Cao. | Thấp. |
| Cài đặt | Có sẵn mặc định, đi kèm SSH. | Có sẵn mặc định, đi kèm SSH. | Cần cài đặt trên máy Client và Server. |
Những lưu ý khi sử dụng lệnh SFTP
Dưới đây là những lưu ý quan trọng khi sử dụng SFTP để đảm bảo an toàn dữ liệu và tránh các lỗi kỹ thuật phổ biến:
- Ưu tiên xác thực bằng SSH Key: Thay vì sử dụng mật khẩu truyền thống dễ bị tấn công Brute-force, bạn hãy thiết lập đăng nhập bằng Public/Private Key để nâng cao bảo mật lên mức tối đa.
- Cẩn trọng với lỗi sai quyền sở hữu: Đây là sự cố phổ biến nhất khi upload file bằng tài khoản root, khiến web server không thể đọc được file và trả về lỗi 403 Forbidden. Vì vậy bạn hãy luôn kiểm tra và cấp lại quyền bằng lệnh chown/chmod sau khi tải dữ liệu lên.
- Áp dụng Chroot Jail để cô lập người dùng: Đối với các tài khoản phụ như của nhân viên, khách hàng, bạn cần phải cấu hình tính năng Chroot Directory trong file /etc/ssh/sshd_config để ngăn chặn hoàn toàn việc truy cập trái phép vào các vùng dữ liệu hệ thống quan trọng.
- Không bỏ sót các file ẩn: Mặc định, lệnh ls trong SFTP sẽ ẩn các file bắt đầu bằng dấu chấm nên bạn hãy luôn tạo thói quen sử dụng lệnh ls -la để không xóa nhầm hoặc bỏ quên các file cấu hình quan trọng này khi di chuyển dữ liệu.
- Lưu ý về hiệu suất truyền tải: Do mọi gói tin đều phải trải qua quá trình mã hóa và giải mã theo thời gian thực nên tốc độ của SFTP sẽ chậm hơn một với FTP truyền thống. Do đó bạn cần cân nhắc kỹ nếu muốn truyền tải dữ liệu nội bộ lớn trong mạng LAN an toàn.

Câu hỏi thường gặp
SFTP và FTP có giống nhau không?
SFTP và FTP hoàn toàn khác nhau:
– FTP: Là giao thức cũ hoạt động trên port 21, truyền dữ liệu dưới dạng văn bản thô, bảo mật kém.
– SFTP: Hoạt động trên nền tảng SSH và thường là port 22, mã hóa toàn bộ dữ liệu truyền đi.
Bạn nên luôn ưu tiên dùng SFTP thay vì FTP để đảm bảo an toàn.
Nếu đang tải file mà bị ngắt mạng, tôi có thể tiếp tục được không?
Có thể, bạn tiếp tục chỉnh sửa bằng cách:
– Để tiếp tục tải file về: Bạn dùng lệnh reget file.txt thay vì get.
– Để tiếp tục tải file lên: Bạn dùng lệnh reput file.txt thay vì put.
Lệnh này sẽ kiểm tra phần dữ liệu đã truyền và chỉ truyền tiếp phần còn thiếu.
Tại sao không kết nối được SFTP và bị gặp lỗi Connection refused?
Lỗi này thường do 2 nguyên nhân:
– Sai cổng: Bạn đang cố kết nối vào port 21 của FTP trong khi SFTP chạy trên port 22 của SSH. Lúc này bạn hãy kiểm tra lại port.
– Dịch vụ SSH chưa chạy: SFTP phụ thuộc vào SSH Server nên bạn cần đảm bảo service sshd trên server đang hoạt động.
SFTP Linux là công cụ an toàn, linh hoạt và dễ sử dụng, thường phù hợp khi bạn cần kiểm soát chi tiết quá trình truyền file hoặc làm việc trực tiếp trên server production. Với khả năng mã hóa toàn trình và chế độ tương tác linh hoạt, SFTP cho phép bạn kiểm soát từng thao tác upload/download một cách chính xác, giảm thiểu rủi ro sai sót khi làm việc trên môi trường Production.




