Cảm ơn bạn!
Cách sử dụng WinSCP để truyền file an toàn qua mạng
WinSCP là gì?
Trong bài viết này, chúng ta cùng tìm hiểu về công cụ WinSCP (Windows Secure Copy), đây là một phần mềm phổ biến giúp chúng ta kết nối và truyền tải file an toàn qua các giao thức (protocol) như SFTP, FTP, WebDAV và SCP trên hệ điều hành Windows. Nó cho phép truyền tải file an toàn giữa máy tính cục bộ (local computer) và máy chủ từ xa (remote server). Để sử dụng WinSCP, các bạn có thể sử dụng cả giao diện đồ họa (GUI) và giao diện dòng lệnh (CLI).
Ở hệ điều hành windows, các bạn có thể tải tool về tại link: https://winscp.net/, việc cài đặt cũng khá đơn giản 😁, đây là giao diện của WinSCP.
Nói qua một chút về UI của WinSCP, các bạn có thể thấy WinSCP có 2 panels, ngăn điều khiển bên trái cho biết thông tin local file hay thông tin file ở máy hiện tại của các bạn và ngăn bên phải là thông tin của remote server. Hiện tại mình chưa kết nối đến remote server nên mặc định bên phải là thông tin của máy mình 😁.
Ở đây, mình đã nhấn chọn New tab
để tạo kết nối đến remote server, bạn thấy màn hình Login
sẽ hiện lên giống hình trên. Một số thông tin các bạn nên chú ý như:
- File protocol: Nơi chúng ta chọn giao thức truyền tải file như SFTP, SCP, FTP,... việc chọn lựa tùy thuộc vào cấu hình máy chủ.
- Hostname: Nhập hostname hoặc địa chỉ IP (IP address) của remote server bạn muốn connect.
- Username: Username trên remote server.
- Password: Nhập mật khẩu để login vào remote server.
- Port number: Chỉ định port mà server đang chờ kết nối, với SFTP hoặc SSH thì port theo mặc định là 22.
Sau đây, chúng ta cùng tìm hiểu thêm về các giao thức truyền file mà WinSCP hỗ trợ nhé.
Các bạn nếu chưa biết về SSH (Secure Shell) có thể tìm hiểu tại bài viết: SSH là gì? cách SSH đến remote server sử dụng virtualbox. Đây là một giao thức mạng (network protocol) được sử dụng để đăng nhập từ client đến remote server, nó giúp chúng ta thực hiện các lệnh trên máy remote một cách an toàn. WinSCP sử dụng SSH để đảm bảo tính bảo mật và tính toàn vẹn trong quá trình truyền tải file.
File Transfer Protocols
SFTP (SSH File Transfer Protocol)
SFTP là giao thức truyền file an toàn, nó hoạt động bằng cách sử dụng SSH (Secure Shell). Giao thức này sử dụng các cơ chế mã hóa (encryption) và xác thực (authentication) cung cấp bởi SSH để đảm bảo truyền tải file an toàn. SFTP hoạt động bằng cách tạo một kết nối an toàn giữa client và server. Client sau đó có thể thực hiện các thao tác với file như upload, download, rename và delete file trên remote server. Dữ liệu được chuyển qua kết nối SFTP và được mã hóa, đảm bảo tính bảo mật và toàn vẹn.
FTP (File Transfer Protocol)
FTP sử dụng hai kết nối riêng biệt: kết nối điều khiển - control connection và kết nối dữ liệu - data connection. Kết nối điều khiển được thiết lập trên cổng 21 và được sử dụng để gửi lệnh và nhận phản hồi giữa client và server. Kết nối dữ liệu được thiết lập trên một cổng riêng biệt (thường trên cổng 20) và được sử dụng để truyền tải dữ liệu file. FTP không cung cấp mã hóa theo mặc định, do đó nó ít an toàn để truyền tải các file chứa thông tin nhạy cảm. Để an toàn hơn, FTP có thể được kết hợp với giao thức mã hóa SSL/TLS (FTPS).
WebDAV (Web Distributed Authoring and Versioning)
WebDAV cho phép client thực hiện các hoạt động với file như upload, download, delete trên remote server. Nó sử dụng các phương thức HTTP như GET, PUT, POST, DELETE,... cho các hoạt động này. WebDAV hỗ trợ authentication và có thể sử dụng SSL/TLS để truyền tải file an toàn.
SCP (Secure Copy Protocol)
SCP là một giao thức truyền tải file an toàn hoạt động qua SSH. SCP cho phép sao chép các file giữa client và remote server. Nó hoạt động bằng cách thiết lập một kết nối SSH và sau đó sử dụng các lệnh SSH để sao chép file. SCP mã hóa dữ liệu trong quá trình truyền tải, đảm bảo truyền tải file an toàn.
Cách sử dụng WinSCP
Tiếp theo chúng ta đến với phần thực hành nhé. Mình sẽ tạo một máy ảo để giả lập remote server. Chúng ta sẽ dùng virtualbox và tạo máy ảo ubuntu server. Chi tiết các bạn có thể tham khảo cách tạo máy ảo và SSH đến ubuntu server tại: SSH là gì? cách SSH đến ubuntu server và cài đặt LAMP stack sử dụng virtualbox.
Đầu tiên, mình sẽ mở virtualbox và chạy ubuntu server, vào phần network setting của máy ảo vào tạo port để tiến hành SSH từ máy local hiện tại. Mình tạo port 3022 tương ứng với port 22 (mặc định của SSH) trên ubuntu server. Bạn nên đọc lại các bài viết liên quan ở trên để hiểu hơn nhé.
Đây là ubuntu server mình đã tạo trước đó, nếu không chỉ định HOST IP và GUEST IP thì mặc định sẽ là localhost nhé.
Sau khi đã config cho ubuntu server để nhận các kết nối thông qua SSH từ client. Chúng ta mở WinSCP và điền thông tin tương tự như dưới đây nhé.
Hiện tại mình đang SSH bằng username homiedev
và port là 3022 😁. Nếu thành công màn hình WinSCP sẽ trông giống như sau.
Các bạn có thể thấy, right panel của mình lúc này là ubuntu server, hiện mình đang login bằng username homiedev
. Sau khi login thành công chúng ta có thể truyền tải file một cách an toàn rồi ^^.
Tạm kết
Như vậy là chúng ta đã tìm hiểu cách sử dụng WinSCP để truyền tải file giữa local computer với remote server. Với WinSCP các bạn có thể kết nối đến nhiều remote server và truyền tải file một cách an toàn.
Hi vọng bài viết này sẽ giúp ích cho các bạn. Cảm ơn các bạn đã đọc bài viết 😄.