SCP (Secure Copy Protocol) và SFTP (Secure File Transfer Protocol) là các phương án thay thế cho FTP (File Transfer Protocol), hữu ích cho việc truyền file cục bộ, không theo lịch trình. Cả ba đều giúp di chuyển file từ vị trí này sang vị trí khác qua Ethernet. Tuy nhiên, FTP truyền dữ liệu dưới dạng văn bản thuần túy, trong khi hai giao thức còn lại sử dụng giao thức Secure Shell (SSH) để giao tiếp.
SCP và SFTP là gì?
SCP (Secure Copy Protocol)

Đây là phương thức truyền file phi tương tác sử dụng shell và lệnh từ xa để truyền file an toàn giữa hai máy tính. Đây là phiên bản bảo mật của RCP trước đây, và FTP sử dụng giao thức SSH để xác thực nhưng với cú pháp dòng lệnh tương tự. Mặc dù dựa mạnh vào tiện ích SFTP, SCP thường là lựa chọn phù hợp hơn khi dùng script để thiết lập truyền file không cần can thiệp.
Lệnh có thể dùng để gửi hoặc lấy file từ máy chủ. Về cơ bản, nó ghi các byte của file lên đường hầm SSH và để SSH xử lý các quy trình phức tạp hơn như tính toàn vẹn và nén.
SCP có thể dùng với ký tự đại diện (wildcard) khi truyền nhiều file dựa trên tiêu chí bạn chọn. Các ký tự đại diện này cũng có thể dùng để gửi và nhận file.
Nó cũng sao chép file giữa các máy tính (cục bộ và từ xa) hoặc giữa hai máy chủ từ xa.
SFTP (Secure File Transfer Protocol)

Khác với SCP phi tương tác, SFTP là giao thức hoặc chương trình truyền file tương tác thực hiện mọi thao tác qua kết nối SSH được mã hóa.
Nó sử dụng nhiều tính năng như nén hoặc xác thực khóa công khai để kết nối và đăng nhập vào máy chủ cụ thể và chuyển vào chế độ lệnh tương tác.
SFTP có thể đề cập đến Simple File Transfer Protocol hoặc SSH File Transfer Protocol. Phiên bản sau được thiết kế để dùng với SSH cho truyền file an toàn, trong khi Simple File Transfer Protocol là phiên bản FTP nhẹ bị bỏ quên vì TFTP. Nó chạy trên cổng TCP 115.
Nó cũng dùng để tự động lấy file nếu bạn dùng phương pháp xác thực phi tương tác; ngược lại nó lấy file sau khi xác thực tương tác thành công.
Mặc dù hoạt động với nhiều giao thức, SFTP thường dùng SSH để xác thực an toàn.
Lưu ý: SFTP không phải là FTP qua SSH mà là một giao thức hoàn toàn mới.
Khác biệt giữa SCP và SFTP
Có một vài điểm tương đồng giữa hai chương trình truyền file, như cả hai đều dùng cổng TCP 22 và chạy trên SSH, khiến chúng ngang nhau về bảo mật.
Cả hai đều cung cấp các tính năng bao gồm mã hóa dữ liệu khi truyền và xác thực khóa công khai. Ngoài ra, cả hai giao thức đều hỗ trợ truyền file lớn vì không có giới hạn kích thước file.
Các khác biệt chính giữa SCP và SFTP nằm ở thông số kỹ thuật và chức năng.
Chức năng
SCP truyền dữ liệu với bảo vệ chống chặn, trong khi SFTP thực hiện truy cập file, truyền tải và quản lý.
Vì vậy, SCP được thiết kế tốt hơn cho truyền file một lần giữa hai máy tính聯網 hoặc từ xa qua Internet, SFTP làm điều đó và thêm quản lý dữ liệu.
Các thao tác
SCP không thể thực hiện một số thao tác như liệt kê thư mục từ xa hoặc xóa file; nó chỉ có thể truyền file. SFTP thì thực hiện mọi thứ, bao gồm xóa file và liệt kê thư mục.
SFTP cung cấp thành phần GUI để quản trị từ xa nhiều hơn và giống như một hệ thống file được truy cập từ xa, nhưng SCP không cung cấp điều đó.
Tốc độ truyền file
SCP xác nhận các gói tin nhận được nhanh hơn SFTP, nơi phải xác nhận từng gói tin nhỏ. Điều này đặc biệt đúng trên mạng độ trễ cao.
Ưu điểm khác của SCP là nó dùng thuật toán hiệu quả hơn cho truyền file.
Tiếp tục truyền file bị gián đoạn
SCP không hỗ trợ chức năng này, nhưng SFTP hỗ trợ qua client dòng lệnh.
Dòng lệnh
SCP phi tương tác và không đọc được script lệnh, nên mọi thứ phải viết trên dòng lệnh. SFTP thì tương tác, nên có thể đọc lệnh từ file.
Nên dùng SCP hay SFTP cho truyền file?
Mặc dù chúng có điểm tương đồng và khác biệt, nói một cái tốt hơn cái kia sẽ không công bằng. Cả hai truyền file đều có tính năng bảo mật tương tự vì chạy trên SSH. Công cụ bạn chọn sẽ dựa trên nhu cầu của môi trường: tốc độ, chức năng và bảo mật.
Nguồn ảnh: SSH, Jama00