Liên hệProfile
Danh mục

Mục Lục

    Cách dùng SFTP Linux để truyền file qua SSH an toàn và nhanh chóng

    Nguyễn Hưng

    Ngày đăng:

    26/03/2026

    Cập nhật lần cuối:

    26/03/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    26/03/2026

    Cập nhật lần cuối:

    26/03/2026

    Mục lục

    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@host

    Ví 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
    SFTP Linux là một giao thức truyền file an toàn chạy trên nền SSH
    SFTP Linux là một giao thức truyền file an toàn chạy trên nền SSH

    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ĩaVí dụ
    -PChỉ định port SSH nếu server dùng port khác 22.sftp -P 2222 user@host
    -iSử dụng SSH key để xác thực thay vì mật khẩu.sftp -i key.pem user@host
    -CNén dữ liệu để tăng tốc độ truyền tải.sftp -C user@host
    -vHiể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.
    Các trường hợp cần sử dụng lệnh SFTP
    Các trường hợp cần sử dụng lệnh SFTP

    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.
    Những lợi ích khi sử dụng SFTP
    Những lợi ích khi sử dụng SFTP

    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@server

    Sau 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.

    kết nối nhanh tới server thông qua giao thức SFTP
    Kết nối nhanh tới server thông qua giao thức SFTP

    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
    tải một file từ máy cá nhân lên server
    Tải một file từ máy cá nhân lên server

    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
    Upload một thư mục
    Upload một thư mục

    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ải file từ server về máy cá nhân
    Tải file từ server về máy cá nhân

    Tương tự, để download cả thư mục, bạn chạy lệnh như sau:

    get -r website
    Tải file từ server về máy cá nhân
    Tải file từ server về máy cá nhân

    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
    Xóa file trên server
    Xóa file trên server

    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
    Thoát khỏi giao diện SFTP
    Thoát khỏi giao diện SFTP

    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/
    Upload website lên server
    Upload website lên server

    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 
    Tải log từ server về local
    Tải log từ server về local

    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
    Tự động upload file backup
    Tự động upload file backup

    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íSCPSFTPRSYNC
    Cơ chế hoạt độngSao 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ấtNhanh 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 ResumeKhô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ácKhông.Cao.Thấp.
    Cài đặtCó 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.
    Bạn nên ưu tiên xác thực bằng SSH Key
    Bạn nên ưu tiên xác thực bằng SSH Key (Nguồn: Internet)

    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.

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Hướng dẫn sử dụng lệnh curl Linux để truyền dữ liệu và kiểm thử HTTP chi tiết
    Hướng dẫn sử dụng lệnh curl Linux để truyền dữ liệu và kiểm thử HTTP chi tiết

    Lệnh curl là một công cụ dòng lệnh linh hoạt và mạnh mẽ, được sử dụng để truyền dữ liệu đến hoặc từ một máy chủ. Công cụ này hỗ trợ nhiều giao thức khác nhau như HTTP, HTTPS, FTP, FTPS, SCP, SFTP,… và thường được dùng để kiểm thử API, tải file hoặc mô…

    26/03/2026

    Hướng dẫn cách gán output của Linux cho một biến nhanh chóng, chi tiết
    Hướng dẫn cách gán output của Linux cho một biến nhanh chóng, chi tiết

    Việc gán output của lệnh vào một biến giúp bạn lưu trữ kết quả đó trong biến và tái sử dụng linh hoạt trong suốt script, từ kiểm tra điều kiện, xử lý chuỗi cho đến log hoặc tự động hóa các tác vụ phức tạp. Trong bài viết này, mình sẽ hướng dẫn bạn…

    26/03/2026

    Lệnh ping trong Linux là gì? Cácg sử dụng lệnh ping để kiểm tra kết nối mạng và độ trễ
    Lệnh ping trong Linux là gì? Cácg sử dụng lệnh ping để kiểm tra kết nối mạng và độ trễ

    Lệnh ping Linux là công cụ dòng lệnh dùng để kiểm tra kết nối mạng và đo độ trễ giữa máy của bạn với một địa chỉ IP hoặc tên miền cụ thể thông qua các gói ICMP Echo Request/Echo Reply. Trong bài viết này, mình sẽ cùng bạn tìm hiểu cách dùng ping Linux…

    26/03/2026

    Hướng dẫn sử dụng lệnh nice Linux để điều chỉnh độ ưu tiên tiến trình hiệu quả
    Hướng dẫn sử dụng lệnh nice Linux để điều chỉnh độ ưu tiên tiến trình hiệu quả

    Lệnh nice Linux là công cụ điều chỉnh mức ưu tiên CPU cho tiến trình thông qua giá trị niceness, giúp phân phối tài nguyên hợp lý giữa các tác vụ chạy đồng thời trên hệ thống. Trong bài viết này, mình sẽ cùng bạn tìm hiểu cách hoạt động của nice Linux, cách thiết…

    26/03/2026

    linux

    lenh

    text