Nội dung bài viết
#

SFTP là gì? Cách sử dụng SFTP để truyền tệp tin

Nội dung bài viết

    FTP từng là một giao thức để truyền thông tin từ xa giữa các hệ thống với nhau. Nhưng đến năm 2022, giao thức này đã không còn được sử dụng vì thông tin truyền đi không được mã hóa nên tính bảo mật không cao. Thay vào đó, hiện nay các hệ thống đều sử dụng giao thức SFTP.

    Vậy SFTP là gì? Cách thức mà SFTP truyền tin như thế nào? Hãy cùng BKHOST tìm hiểu trong bài viết này.

    SFTP là gì?

    gioi thieu ve SFTP

    SFTP là viết tắt của cụm từ Secure File Transfer Protocol, đây là một giao thức được tích hợp sẵn trong SSH để thực hiện các lệnh FTP một cách an toàn. Điều này có nghĩa là SFTP có khả năng cải thiện được vấn đề bảo mật thấp của FTP.

    Trong đa số trường hợp, nhà phát triển ưu tiên sử dụng SFTP hơn FTP. Ngoài lý do bảo mật tốt, SFTP còn vượt trội hơn FTP về khả năng kết nối với SSH. Còn FTP sẽ được sử dụng ở nơi có bảo mật mạng cao hoặc một số trường hợp hạn chế khác.

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

    cach de ket noi voi SFTP

    Theo thiết lập, SFTP sử dụng SSH để xác thực và tạo kết nối an toàn. Điều này cho phép người dùng có thể xác nhận mật khẩu theo mặc định trong SSH. Tuy nhiên, để tăng cường tính bảo mật, bạn nên tạo khóa SSH và chuyển nó sang tất cả hệ thống SSH đang sử dụng. Ngoài tăng bảo mật, việc này còn giúp bạn tiết kiệm thời gian khi muốn thực hiện bảo mật nâng cao đối với tất cả hệ thống đang truy cập.

    Sau đây là hướng dẫn các bước để kết nối với SFTP:

    Bước 1: Kiểm tra quyền truy cập vào SSH bằng dòng lệnh bên dưới:

    $ SSH sammy@your_server_ip_or_remote_hostname

    Bước 2: Nếu kết nối vẫn đang hoạt động thì bạn nhập exit để thoát ra.
    $ exit

    Bước 3: Để thiết lập phiên SFTP, bạn cần nhập dòng lệnh sau:
    $ sftp sammy@your_server_ip_or_remote_hostname

    Trong trường hợp đang sử dụng cổng mặc định khác cổng 22, bạn có thể mở phiên SFTP bằng dòng lệnh sau giúp kết nối với cổng chỉ định một cách dễ dàng:
    $ sftp -oPort=custom_port sammy@your_server_ip_or_remote_hostname

    Cách yêu cầu hỗ trợ từ SFTP

    Bạn cần biết cách gọi ra bộ phận hỗ trợ của SFTP đầu tiên vì lệnh này sẽ giúp bạn có quyền truy cập vào bảng tóm tắt của các lệnh khác. Bạn hãy gọi nó ra bằng cách gõ:

    sftp> help

    hoặc
    sftp> ?

    Sau đó, hệ thống sẽ hiển thị như bên dưới.

    Output:

    Available commands:
    bye Quit SFTP
    cd path Change remote directory to 'path'
    chgrp grp path Change group of file 'path' to 'grp'
    chmod mode path Change permissions of file 'path' to 'mode'
    chown own path Change owner of file 'path' to 'own'
    df [-hi] [path] Display statistics for current directory or
    filesystem containing 'path'
    exit Quit SFTP
    get [-Ppr] remote [local] Download file
    help Display this help text
    lcd path Change local directory to 'path'
    
    ...

    Cách điều hướng trong SFTP

    cach dieu huong SFTP

    Bạn hãy sử dụng một số lệnh để điều hướng thông qua hệ thống phân cấp tệp của hệ thống từ xa. Trước khi điều hướng đến một vị trí bất kỳ, cần xác định vị trí hiện tại của mình. Để thực hiện điều này, hãy nhập dòng lệnh sau.

    sftp> pwd

    Output:
     Remote working directory: /home/demouser

    Hoặc bạn có thể sử dụng một lệnh khác để xem thư mục hiện tại của hệ thống từ xa như sau:
    sftp> ls

    Output:
    Summary.txt info.html temp.txt testDirectory

    Các lệnh trong giao diện SFTP không có chức năng giống cú pháp shell điển hình hoàn toàn. Mặc dù không có nhiều tính năng nhưng chúng có thể thực hiện một số chức năng như thêm -la vào ls để xem siêu dữ liệu.
    sftp> ls -la

    Output:
    drwxr-xr-x 5 demouser demouser 4096 Aug 13 15:11 .
    drwxr-xr-x 3 root root 4096 Aug 13 15:02 ..
    -rw------- 1 demouser demouser 5 Aug 13 15:04 .bash_history
    -rw-r--r-- 1 demouser demouser 220 Aug 13 15:02 .bash_logout
    -rw-r--r-- 1 demouser demouser 3486 Aug 13 15:02 .bashrc
    drwx------ 2 demouser demouser 4096 Aug 13 15:04 .cache
    -rw-r--r-- 1 demouser demouser 675 Aug 13 15:02 .profile
    . . .

    Để điều hướng qua một thư mục khác, bạn hãy thực hiện lệnh:
    sftp> cd testDirectory

    Nếu muốn di chuyển trong các tệp cục bộ, hãy sử dụng lệnh:
    sftp> lpwd

    Output:
    Local working directory: /Users/demouser

    Bạn còn có thể liệt kê nội dung của bất kì thư mục cục bộ nào đang truy cập hiện tại bằng lệnh:
    sftp> lls

    Output:
    Desktop			local.txt		test.html
    Documents		analysis.rtf		zebra.html

    Ngoài ra, bạn cũng có thể thay đổi thư mục muốn tương tác trên hệ thống cục bộ bằng lệnh:
    sftp> lcd Desktop

    Cách truyền tệp bằng SFTP

    cach truyen tep băng SFTP

    SFTP có hỗ trợ truyền tệp nhanh chóng bằng SFTP. Để thực hiện, bạn cần làm theo từng hướng dẫn bên dưới.

    Cách tải tệp nhanh chóng bằng SFTP

    Để tải tệp trong hệ thống máy chủ từ xa, bạn hãy thực hiện lệnh:

    sftp> get remoteFile

    Output:
    Fetching /home/demouser/remoteFile to remoteFile
    /home/demouser/remoteFile 100% 37KB 36.8KB/s 00:01

    Thông qua dòng lệnh trên, lệnh get sẽ tải một tệp từ hệ thống từ xa có cùng tên với phần chỉ định (ở đây tên tệp là “remoteFile”). Để đổi tên tệp này, bạn hãy nhập lệnh:
     “sftp> get remoteFile localFile”

    Lệnh get còn có thể chấp nhận một số tùy chọn khác như sao chép thư mục và toàn bộ nội dung của nó bằng cách thêm hậu tố -r someDirectory. Lệnh cụ thể cần nhập như sau:
     sftp>get -r someDirectory

    Bên cạnh đó, bằng cách thêm flags -p hoặc -P, bạn có thể yêu cầu duy trì thời gian và quyền truy cập. Lệnh cụ thể mà bạn cần nhập vào hệ thống như sau:
     sftp> get -Pr someDirectory

    Truyền tệp cục bộ sang hệ thống từ xa

    Để truyền tệp cục bộ sang hệ thống từ xa, bạn hãy thực hiện lệnh put như sau:

     sftp> put localFile

    Output:
    Uploading localFile to /home/demouser/localFile
    localFile 100% 7607 7.4KB/s 00:00

    Bạn hãy sao chép toàn bộ thư mục bằng cách thêm flag -r với lệnh:
    sftp> put -r localDirectory

    Một lệnh khác dùng để tải tệp xuống và đưa tệp lên hệ thống là lệnh df. Một ưu điểm khi sử dụng lệnh này là bạn có thể kiểm tra có đủ dung lượng để tải tệp hay không. Lệnh như sau:
    sftp> df -h

    Output:
    Size Used Avail (root) %Capacity
    19.9GB 1016MB 17.9GB 18.9GB 4%

    Lệnh df có một nhược điểm đó là không có biến cục bộ. Để khắc phục điều này, bạn thêm dấu “!” vào dòng lệnh hoặc gán biến cho lệnh bằng cách gõ:
    sftp> !

    Sau đó nhập lệnh:
    sftp> df -h

    Output:
    Filesystem Size Used Avail Capacity Mounted on
    /dev/disk0s2 595Gi 52Gi 544Gi 9% /
    devfs 181Ki 181Ki 0Bi 100% /dev
    map -hosts 0Bi 0Bi 0Bi 100% /net
    map auto_home 0Bi 0Bi 0Bi 100% /home

    Các thao tác tệp cơ bản đối với SFTP

    cac thao tac tep co ban voi SFTP

    SFTP có nhiều tính năng mạnh mẽ hỗ trợ người dùng trong thao tác tệp. Sau đây là một số thao tác cơ bản nhất mà bạn cần biết để sử dụng SFTP thuận tiện hơn.

    Thay đổi quyền quản lý tệp và nhóm

    Bạn có thể thay đổi quyền quản lý đối với một tệp hay thư mục nào đó bằng cách nhập lệnh:

    sftp> chown userID file

    Lệnh SFTPkhông chấp nhận tên người dùng, thay vào đó nó cần userID hay UID. Tuy nhiên, điều này gây khó khăn trong quá trình thực hiện vì không dễ dàng biết được UID từ trong giao diện SFTP. Thay vào đó, người dùng nên đọc từ tệp /etc/passwd. Hãy gõ lệnh sau:
    sftp>get /etc/passwd
    sftp>!less passwd

    Output:
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/bin/sh
    bin:x:2:2:bin:/bin:/bin/sh
    sys:x:3:3:sys:/dev:/bin/sh
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/bin/sh
    man:x:6:12:man:/var/cache/man:/bin/sh
    . . .

    Thay vì sử dụng dấu “!” làm câu lệnh, bạn có thể sử dụng dấu này làm tiền tố cho một lệnh shell cục bộ. Một ví dụ khác là thay đổi chủ sở hữu nhóm của tập bằng dòng code “sftp> chgrp groupID file”. Một thao tác khác để có được danh sách các nhóm từ xa là sử dụng câu lệnh sau:
    sftp>get /etc/group
    sftp>!less group

    Output:
    root:x:0:
    daemon:x:1:
    bin:x:2:
    sys:x:3:
    adm:x:4:
    tty:x:5:
    disk:x:6:
    lp:x:7:
    . . .

    Sử dụng lệnh chmod

    Lệnh chmod hoạt động bình thường như trên hệ thống tệp từ xa. Gõ lệnh như sau:

    sftp> chmod 777 publicFile

    Output:
    Changing mode on /home/demouser/publicFile

    Sử dụng lệnh umask

    su dung lumask

    Bạn có thể cài đặt umask cục bộ bằng cách sử dụng lệnh:

    sftp> umask 022

    Lệnh này cho phép tất cả các tệp khi được sao chép vào hệ thống tệp từ xa đều có thể giữ nguyên các quyền ban đầu của chúng. Sau khi sử dụng lệnh này, tất cả các tệp tải xuống sẽ có 644 quyền.

    Output:

    Local umask: 022

    Tạo tệp trên hệ thống

    SFTP cho phép tạo tệp trên cả hai hệ thống gồm hệ thống cục bộ và hệ thống từ xa. Các tệp này sẽ mang 2 thẻ lmkdirmkdir tương ứng.

    sftp> ln
    sftp> rm
    sftp> rmdir

    Những lệnh này sẽ giúp sao chết các hành vi của các lệnh tương đương với shell của chúng. Nếu bạn muốn thực hiện các hành vi này, hãy dùng lệnh:
    sftp> !

    hoặc
    sftp> !chmod 644 somefile

    Kết thúc phiên làm việc

    Sau khi hoàn thành phiên làm việc với SFTP, hãy sử dụng lệnh exit hoặc bye để thoát. Cách thực hiện với cú pháp:

    sftp> bye

    hoặc
    sftp> exit

    Tổng kết về SFTP

    Thông qua bài viết, chúng tôi đã giới thiệu cách sử dụng SFTP để truyền tệp tin. Mong những thông tin trên sẽ giúp bạn hiểu rõ hơn về SFTP.

    Nếu bạn bất cứ câu hỏi nào liên quan đến SFTP , hãy để lại bình luận ở bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.

    P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.

    Thuê Cloud VPS Cao Cấp tại BKHOST

    Giảm giá cực sâu, chất lượng hàng đầu. Đăng ký ngay hôm nay:

    thuê cloud vps

    Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
    Bình luận

    Thanh toán linh hoạt

    Chúng tôi chấp nhận thanh toán như ATM, Visa, Internet Banking, Paypal, Baokim, Ngân lượng

    Gọi ĐT tư vấn ngay
    Chat ngay qua Zalo
    Chat ngay qua Messenger
    Góp ý
    Bạn đã hài lòng với trải nghiệm trên Bkhost.vn?
    Cảm ơn lượt bình chọn của bạn, Chúc bạn 1 ngày tốt lành !