#

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

 25/05/2022 - 13:16 Trịnh Duy Thanh

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

Đăng ký dịch vụ Email Google Workspace

BKHOST là đối tác chính thức của Google phân phối dịch vụ Google Workspace. Các gói Email Google WorkSpace được BKHOST thiết kếnhằm tối ưu dung lượng lưu trữ cho khách hàng:

  • Business starter – 30GB/user.
  • Business standard – 2TB/user.
  • Business plus – 5TB/user.

Rất nhiều chương trình khuyến mãi hấp dẫn đang chờ bạn.

Đăng ký ngay:

gmail g suite

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 lumask

su dung lumask

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

sftp> lumask 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.

Dịch vụ Gmail theo tên miền riêng cho doanh nghiệp

Đặc biệt đang có chương trình khuyến mại cực tốt cho khách hàng đăng ký dịch vụ Gmail Tên Miền Riêng:

  • Giảm giá lên đến 20%.
  • Giá chỉ từ 495k/5mail.
  • Dung lượng lên đến 30GB/user.

Đăng ký ngay:

gói email doanh nghiệp

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