10 ví dụ lệnh sftp trên Centos / Ubuntu / Debian / Fedora

Lệnh sftp (Secure File Transfer Protocol) chạy trên giao thức SSH trên cổng chuẩn 22 theo mặc định để thiết lập một kết nối an toàn. SFTP đã được tích hợp vào nhiều công cụ giao diện đồ họa (FileZilla, WinSCP, FireFTP, vv.).

Cảnh báo bảo mật: Không mở cổng SSH (Secure SHell) toàn cầu vì điều này sẽ làm nhiễm sắc lỗ hổng bảo mật. Bạn chỉ nên mở cho một địa chỉ IP cụ thể từ đó bạn sẽ truyền hoặc quản lý tệp trên hệ thống từ xa hoặc ngược lại.

Kết nối với SFTP

Theo mặc định, giao thức SSH được sử dụng để xác thực và thiết lập kết nối SFTP. Để bắt đầu một phiên SFTP, nhập tên người dùng và tên máy chủ từ xa hoặc địa chỉ IP tại dấu nhắc lệnh. Sau khi xác thực thành công, bạn sẽ thấy một dấu nhắc sftp>.

# sftp tecmint@27.48.137.6
Connecting to 27.48.137.6...
tecmint@27.48.137.6's password:
sftp>

Lấy trợ giúp

Khi bạn đang ở dấu nhắc sftp, kiểm tra các lệnh có sẵn bằng cách gõ '?' hoặc 'help' tại dấu nhắc lệnh.

sftp> ?

Available commands:
cd path                       Change remote directory to 'path'
lcd path                      Change local 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'
help                          Display this help text
get remote-path [local-path]  Download file
lls [ls-options [path]]       Display local directory listing
ln oldpath newpath            Symlink remote file
lmkdir path                   Create local directory
lpwd                          Print local working directory
ls [path]                     Display remote directory listing
lumask umask                  Set local umask to 'umask'
mkdir path                    Create remote directory
put local-path [remote-path]  Upload file
pwd                           Display remote working directory
exit                          Quit sftp
quit                          Quit sftp
rename oldpath newpath        Rename remote file
rmdir path                    Remove remote directory
rm path                       Delete remote file
symlink oldpath newpath       Symlink remote file
version                       Show SFTP version
!command                      Execute 'command' in local shell
!                             Escape to local shell
?                             Synonym for help

Kiểm tra thư mục làm việc hiện tại với lệnh sftp

Lệnh 'lpwd' được sử dụng để kiểm tra thư mục làm việc hiện tại trên máy tính cục bộ, trong khi lệnh 'pwd' được sử dụng để kiểm tra thư mục làm việc hiện tại trên máy chủ từ xa.

sftp> lpwd
Local working directory: /
sftp> pwd
Remote working directory: /tecmint/

Liệt kê tệp tin với sFTP

Liệt kê các tệp tin và thư mục trên hệ thống cục bộ và máy chủ ftp từ xa.

Trên máy chủ từ xa. 

sftp> ls

Trên máy tính cục bộ.

sftp> lls

Tải lên tệp tin bằng lệnh sftp

Đặt một hoặc nhiều tệp tin vào máy chủ ftp từ xa:

sftp> put local.profile
Uploading local.profile to /tecmint/local.profile

Tải lên nhiều tệp tin bằng lệnh sftp

Đặt nhiều tệp tin vào máy chủ ftp từ xa:

sftp> mput *.xls

Tải xuống tệp tin bằng lệnh sftp

Lấy một hoặc nhiều tệp tin về máy tính cục bộ

sftp> get SettlementReport_1-10th.xls
Fetching /tecmint/SettlementReport_1-10th.xls to SettlementReport_1-10th.xls

Lấy nhiều tệp tin về máy tính cục bộ

sftp> mget *.xls

Lưu ý: Theo mặc định, lệnh get sẽ tải về tệp tin trong hệ thống máy tính cục bộ với cùng tên. Chúng ta có thể tải xuống các tệp từ xa với tên khác bằng cách chỉ định tên tại cuối. (Điều này chỉ áp dụng khi tải xuống một tệp duy nhất).

Tạo thư mục bằng sFTP

Tạo các thư mục mới trên máy tính cục bộ và máy chủ từ xa.

Máy chủ từ xa

sftp> cd test
sftp>

Máy tính cục bộ

sftp> lcd Documents

Xóa thư mục bằng sFTP

Xóa thư mục hoặc tệp tin trên hệ thống máy chủ từ xa. 

sftp> mkdir test
sftp> lmkdir Documents

Lưu ý: Để xóa/bỏ đi một thư mục từ vị trí từ xa, thư mục đó phải trống.

Thoát khỏi shell sFTP

Lệnh '!' cho phép chúng ta thoát ra khỏi shell cục bộ để thực thi các lệnh Linux. Gõ lệnh 'exit' để trở lại dấu nhắc sftp>.

sftp> !

[root@sftp ~]# exit
Shell exited with status 1
sftp>