Cách sử dụng SFTP (Giao thức truyền file qua SSH an toàn hơn)
FTP là phương pháp tiêu chuẩn để chuyển file hoặc dữ liệu khác giữa các máy tính, nhưng phương pháp này ngày càng trở nên lỗi thời trong môi trường đòi hỏi bảo mật. Đây chính là lý do mà SFTP cần thiết, vì nó đặc biệt an toàn hơn với người dùng hosting VPS.
Trong hướng dẫn này, chúng tôi sẽ trình bày cách sử dụng SFTP để chuyển file lên dịch vụ VPS hosting của Hostinger, cũng như nói về một số lệnh hữu ích khác và giải thích thêm về cách thức hoạt động của nó.
Cách kết nối bằng SFTP
SFTP là hệ thống phụ của SSH. Vì vậy nó hỗ trợ mọi phương thức chứng thực của SSH. Mặc dù phương pháp dùng username và password khá quen thuộc với mọi người, nhưng nếu bạn thiết lập SSH key để đăng nhập SFTP không dùng mật khẩu sẽ tiện lợi và an toàn hơn nhiều. a subsystem of SSH.
Bạn có thể xem thêm bài hướng dẫn này để biết cách thiết lập SSH Keys. Sau khi xong, làm theo các bước bên dưới để kết nối với SFTP. Để kết nối thông qua SFTP trên máy Linux, bạn sẽ cần đi qua các bước:
- Kiểm tra kết nối SSH bằng một trong các lệnh sau:
ssh user@server_ipaddress ssh user@remotehost_domainname
- Sau đó, thoát khỏi session nếu không thấy lỗi.
- Thiết lập kết nối SFTP bằng lệnh sau:
sftp user@server_ipaddress sftp user@remotehost_domainname
- Nếu bạn đang dùng port SSH riêng, dùng lệnh sau để đổi SFTP port:
sftp -oPort=customport user@server_ipaddress sftp -oPort=customport user@remotehost_domainname
- Lệnh sẽ trông như sau:
sftp -oPort=49166 user@31.220.57.32
Sau khi kết nối thành công, bạn sẽ thấy thông báo SFTP.
Cách chuyển file bằng SFTP
Trong phần này, chúng tôi sẽ chỉ bạn cách chuyển file từ máy từ xa sang máy local bằng SFTP và ngược lại.
Ghi chú: Bạn có thể chuyển file bằng SFTP clients, như là WinSCP hoặc FileZilla. Nếu bạn thích FileZilla, xem ngay hướng dẫn tại đây.
Chuyển file từ máy chủ từ xa về máy local
Trước tiên, kiểm tra xem chúng ta đang thư mục local và remote đang dùng là gì bằng lệnh SFTP sau:
sftp> lpwd Local directory: /LocalDirectory sftp> pwd Remote directory: /RemoteDirectory
Ở đây chúng tôi sẽ chỉ cho bạn cách chuyển file từ xa sang hệ thống nội bộ và ngược lại
Bây giờ, hãy xem cách chuyển file từ server từ xa sang máy local bằng lệnh get. Đây là cú pháp cơ bản của lệnh get:
get /RemoteDirectory/filename.txt
Ví dụ: để sao chép file /etc/xinetd.conf từ server từ xa sang máy nội bộ, bạn sẽ sử dụng:
get /etc/xinetd.conf
Sau khi tải xuống hoàn tất, bây giờ bạn có thể thấy file xinetd.conf nằm trong thư mục /user/home của máy nội bộ.
Để tải nhiều tệp xuống bằng SFTP, hãy dùng lệnh mget. Để tải tất cả các file trong thư mục có tên /etc có phần mở rộng .conf vào thư mục hiện tại, bạn sẽ sử dụng lệnh sau:
mget /etc/*.conf
Sau khi tải xuống, bạn có thể tìm thấy tất cả các file *.conf trong thư mục /user/home của máy nội bộ.
Chuyển file từ máy local đến server từ xa/hosting máy chủ ảo
Để sao chép file từ máy nội bộ sang server từ xa hay hosting máy chủ ảo, chúng ta sẽ sử dụng lại lệnh get. Trong trường hợp này, cú pháp của lệnh get sẽ là:
get file.txt /RemoteDirectory
Để di chuyển file example.txt từ máy local sang máy từ xa, hãy nhập lệnh sau:
put /home/user-name/example.txt /root
Bây giờ chúng ta sẽ thấy các file trong thư mục gốc của server từ xa. Bạn cũng có thể thử chuyển nhiều file bằng lệnh mput. Nó hoạt động gần giống như mget:
mput /home/user-name/*.txt /root
Lệnh này sẽ di chuyển tất cả các file có phần mở rộng .txt trong thư mục /home/user-name từ máy cục bộ sang thư mục /root từ xa.
LƯU Ý: Hãy nhớ rằng để tải xuống và tải lên các file bằng SFTP, bạn cần nhập lệnh put hoặc get và nhấn phím TAB.
Một vài lệnh có thể dùng để điều hướng giữa máy remote và local khi dùng SFTP. Chúng tương tự nhu7 khi bạn dùng lệnh Linux shell.
Ví dụ, lệnh pwd sẽ được dùng để cho biết thư mục đang hiện hành là gì.
sftp> pwd Remote directory: /RemoteDirectory
Hoặc
sftp> lpwd Local directory: /LocalDirectory
Bạn có thể hiển thị danh sách files và thư mục trên thư mục từ xa bằng lệnh:
ls
Giống vậy, với thư mục local thì dùng lệnh để liệt kê danh sách file:
lls
Kết quả sẽ như sau:
Pictures Templates Media Text.txt Documents
Để chuyển qua lại giữa thư mục từ xa và thư mục local, nhập lệnh sau:
cd name_of_directory lcd name_of_directory
Cuối cùng, dùng lệnh ! và exit để quay lại local shell và thoát khỏi SFTP.
Cơ bản cách vận hành file trong SFTP
SFTP còn giúp bạn quản lý thư mục và files bằng lệnh.
Để kiểm tra dung lượng máy chủ từ xa dưới dạng gigabytes, bạn dùng lệnh df như sau:
df -h
Kết quả bạn sẽ thấy:
Filesystem Size Used Avail Use% Mounted on /dev/ploop29212p1 59G 2.5G 56G 5% / none 1.5G 0 1.5G 0% /sys/fs/cgroup none 1.5G 0 1.5G 0% /dev tmpfs 1.5G 0 1.5G 0% /dev/shm tmpfs 1.5G 568K 1.5G 1% /run tmpfs 308M 0 308M 0% /run/user/0
Dùng lệnh mkdir để tạo mới thư mục trên cả máy chủ từ xa và local:
mkdir name_of_directory lmkdir name_of_directory
Bạn có thể xóa thư mục từ máy chủ từ xa bằng lệnh rmdir:
rmdir name_of_directory
Để đổi tên file từ phía máy host remote thì dùng lệnh sau:
rename filename new_filename
Đây là ví dụ:
rename Old_FileExample New_FileExample
Nếu bạn muốn xóa file remote, sử dụng lệnh rm:
rm filename
Còn lệnh chown được dùng để thay đổi chủ sở hữu file:
chown userid filename
userid có thể là username hoặc numeric user ID. Ví dụ:
chown UserOne FileExample chown 1234 FileExample
chgrp được dùng để đổi group owner của file:
chgrp groupid filename
Ví dụ:
chgrp NewGroup FileExample
Cuối cùng, bạn có thể cần dùng chmod để thiết lập phân quyền của file:
chmod 764 FileExample
Trong ví dụ trên, ba chữ số đại diện cho user, group, và other của file.
Đối với quyền read (r), write (w), và execute (x), giá trị tương ứng của nó là 4, 2, 1. 0 cũng có thể được dùng để thiết lập file không có quyền nào.
Để gán quyền cho file, chỉ cần tính tỏng giá trị của các quyền trên lại. Đây là diễn giải nó dễ hơn cho bạn hiểu:
chmod ugo FileExample # u đại diện cho User người có quyền đọc, viết và thực thi. # g là Group, tại đây chúng tôi gán quyền write và excute file (ghi và thục thi). # o là Others, chỉ có quyền đọc.
Danh sách các lệnh SFTP hữu ích
Nếu bạn cần sheet cheat nhanh, thì đây là danh sách tất cả các lệnh SFTP có sẵn. Bạn có thể tự tìm danh sách này bằng cách nhập lệnh help hoặc ? – cả hai đều sẽ nhắc kết quả giống nhau.
bye Thoát sftp cd path Thay đổi thư mục từ xa thành 'path' chgrp [-h] grp path Thay đổi nhóm file 'path' thành 'grp' chmod [-h] mode path Thay đổi quyền của file 'path' thành 'mode' chown [-h] own path Thay đổi sở hữu file 'path' thành 'own' df [-hi] [path] Hiển thị số liệu thống kê cho thư mục hiện tại hoặc hệ thống file có chứa 'path' exit Thoát sftp get [-afpR] remote [local] Download file help Hiển thị văn bản trợ giúp này lcd path Thay đổi thư mục nội bộ thành 'path' lls [ls-options [path]] Hiển thị danh sách thư mục nội bộ lmkdir path Tạo thư mục nội bộ ln [-s] oldpath newpath Liên kết file từ xa (-s cho symlink) lpwd In thư mục làm việc nội bộ ls [-1afhlnrSt] [path] Hiển thị danh sách thư mục từ xa lumask umask Đặt local umask thành 'umaks' mkdir path Tạo thư mục từ xa progress Chuyển đổi hiển thị của đồng hồ đo tiến độ put [-afpR] local [remote] Upload file pwd Hiển thị thư mục làm việc từ xa quit Thoát sftp reget [-fpR] remote [local] Tiếp tục tải file rename oldpath newpath Đặt lại tên file reput [-fpR] local [remote] Tiếp tục tải file lên rm path Xóa file từ xa rmdir path Xóa thư mục từ xa symlink oldpath newpath File từ xa Symlink version Hiển thị phiên bản SFTP !command Thực thi 'command' trong local shell ! Thoát khỏi local shell
SFTP là gì?
SFTP, gọi tắt của SSH File Transfer Protocol, là cách chuyển file lên server hoặc ngược lại mà an toàn hơn nhiều. Sử dụng giao thức SSH, nó hỗ trợ mã hóa và các phương thức bảo mật khác để bảo vệ việc chuyển file tốt hơn. Nó là giao thức truyền file an toàn duy nhất bảo vệ chống lại các cuộc tấn công tại bất kỳ điểm nào trong quá trình truyền dữ liệu. Điều này khiến nó trở thành giao thức được ưa thích của các chuyên gia.
Trong quá trình truyền file, mọi dữ liệu được chia thành packets và gửi trên cùng một giao thức bảo mật.
Thông tin nhạy cảm sẽ được mã hóa và không ai có thể đọc được chúng trong quá trình chuyển từ máy client đến máy server/hay hosting. Hay nói cách khác, nội dung gốc dưới dạng plaintext (chữ đọc được) sẽ được thay thế bằng ký tự số mã hóa (ciphertext).
Chỉ có người nhận có key giải mã sẽ có thể nhìn thấy nội dung gốc. Việc này ngăn chặn bất kỳ truy cập trái phép nào vào file.
FTP có hai kênh để trao đổi dữ liệu khác nhau – kênh command và kênh data. Ngược lại, SFTP chỉ có một kênh được mã hóa trong đó dữ liệu được trao đổi trong các gói được định dạng, được mã hóa.
Lời kết
Có khá nhiều điều cơ bản về cách sử dụng SFTP để truyền file an toàn. Chúng tôi hy vọng hướng dẫn này đã chứng minh được nó hữu ích thế nào và cách sử dụng cơ bản. Tuy nhiên, nếu bạn cần thêm thông tin về FTP, bạn có thể tìm thêm hướng dẫn tại đây.
Nếu bạn có thêm câu hỏi nào về SFTP, đừng ngại để lại bình luận bên dưới.