Mục lục
- 1 SCP là gì?
- 2 Mô Hình Lab
- 3 Kiểm Tra SCP Trên Linux
- 4 Cài Đặt SCP Trên Linux
- 5 Cú Pháp SCP Trên Linux
- 6 Các Option SCP Thường Dùng
- 7 Copy File Từ Local Sang Remote Server
- 8 Xác Thực SSH Lần Đầu
- 9 Copy File Từ Remote Server Về Local
- 10 Copy Nhiều File Cùng Lúc
- 11 Copy Thư Mục Bằng SCP
- 12 Hiển Thị Log Chi Tiết Khi Transfer
- 13 Nén Dữ Liệu Để Tăng Tốc Transfer
- 14 Giới Hạn Băng Thông
- 15 Sử Dụng Port SSH Khác 22
- 16 Sử Dụng SSH Key Với SCP
- 17 Giữ Nguyên Permission Và Timestamp
- 18 Thay Đổi Thuật Toán Mã Hóa
- 19 Một Số Lỗi Thường Gặp
- 20 Những Điều Cần Lưu Ý Khi Sử Dụng SCP
- 21 Kết luận

SCP là gì?
Mô Hình Lab

Trong bài viết này, Zhost sẽ sử dụng 02 Server chạy CentOS 7 để thực hiện trao đổi file qua SCP.
- Linux Server 01: 10.10.10.11
- Linux Server 02: 10.10.10.12
Kiểm Tra SCP Trên Linux
Thông thường SCP đã được cài sẵn cùng OpenSSH.
Kiểm tra bằng lệnh:
scp -V
Hoặc:
which scp
Ví dụ output:
/usr/bin/scp
Cài Đặt SCP Trên Linux
Thực tế SCP nằm trong package OpenSSH Client.
Ubuntu/Debian
sudo apt update sudo apt install openssh-client -y
CentOS/AlmaLinux/Rocky Linux
sudo yum install openssh-clients -y
Hoặc với AlmaLinux/Rocky Linux 9
sudo dnf install openssh-clients -y
Cú Pháp SCP Trên Linux
Cú pháp cơ bản:
scp [OPTION] SOURCE DESTINATION
| Thành phần | Ý nghĩa |
|---|---|
| scp | Gọi lệnh SCP |
| OPTION | Tùy chọn thêm |
| SOURCE | File/thư mục nguồn |
| DESTINATION | File/thư mục đích |
Các Option SCP Thường Dùng
| Option | Chức năng |
|---|---|
-r |
Copy thư mục |
-P |
Chỉ định port SSH |
-C |
Nén dữ liệu trước khi transfer |
-i |
Sử dụng SSH Private Key |
-p |
Giữ nguyên permission và timestamp |
-l |
Giới hạn băng thông |
-v |
Hiển thị log chi tiết |
-c |
Chọn thuật toán mã hóa |
Copy File Từ Local Sang Remote Server
Ví dụ copy file test1.txt từ Server 01 sang Server 02:
scp test1.txt 10.10.10.12:/root/
| Thành phần | Ý nghĩa |
|---|---|
| test1.txt | File nguồn |
| root | User SSH trên server đích |
| 10.10.10.12 | IP server đích |
| /root/ | Thư mục lưu file |
Xác Thực SSH Lần Đầu
Nếu lần đầu kết nối SSH đến server, hệ thống sẽ hỏi xác nhận fingerprint:
The authenticity of host '10.10.10.12' can't be established. Are you sure you want to continue connecting (yes/no)?
Nhập:
yes
Sau đó nhập password của user remote.
Copy File Từ Remote Server Về Local
Ví dụ download file từ server về local:
scp 10.10.10.12:/root/test2.txt /home/
Lệnh trên sẽ copy:
/root/test2.txt
từ server remote về:
/home/
Copy Nhiều File Cùng Lúc
scp test1.txt test2.txt 10.10.10.12:/root/
Các file chỉ cần cách nhau bằng dấu cách.
Copy Thư Mục Bằng SCP
Sử dụng option -r:
scp -r /home/data 10.10.10.12:/root/
Lệnh trên sẽ copy toàn bộ thư mục:
/home/data
sang server remote.
Hiển Thị Log Chi Tiết Khi Transfer
Dùng option -v:
scp -rv /home/data 10.10.10.12:/root/
Rất hữu ích khi debug lỗi SSH.
Nén Dữ Liệu Để Tăng Tốc Transfer
Dùng option -C:
scp -rC /home/data 10.10.10.12:/root/
SCP sẽ tự động:
- Nén dữ liệu trước khi gửi
- Truyền dữ liệu
- Giải nén ở máy đích
Phù hợp khi:
- File text nhiều
- Băng thông thấp
- Transfer dữ liệu lớn
Giới Hạn Băng Thông
Nếu không muốn SCP chiếm toàn bộ bandwidth server:
scp -r -l 400 /home/data 10.10.10.12:/root/
Trong đó:
400
là giới hạn tốc độ theo đơn vị Kbit/s.
Sử Dụng Port SSH Khác 22
Nếu server remote đổi port SSH:
scp -P 8686 test1.txt 10.10.10.12:/root/
Lưu ý:
- SCP dùng
-Pviết hoa - SSH dùng
-pviết thường
Đây là lỗi rất nhiều người dễ nhầm.
Sử Dụng SSH Key Với SCP
Ví dụ dùng private key:
scp -i ~/.ssh/id_rsa test1.txt 10.10.10.12:/root/
Hoặc file .pem:
scp -i server.pem test1.txt 10.10.10.12:/root/
Giữ Nguyên Permission Và Timestamp
Dùng option -p:
scp -p test1.txt 10.10.10.12:/root/
SCP sẽ giữ nguyên:
- Quyền file
- Thời gian tạo
- Thời gian chỉnh sửa
Thay Đổi Thuật Toán Mã Hóa
Mặc định SCP dùng AES.
Có thể đổi sang thuật toán khác:
scp -c [email protected] test1.txt 10.10.10.12:/root/
Lưu ý:
- Một số thuật toán cũ như
arcfourđã bị loại bỏ trên OpenSSH mới - Không nên dùng thuật toán yếu vì lý do bảo mật
Một Số Lỗi Thường Gặp
Permission denied
Nguyên nhân:
- Sai password
- Sai SSH key
- User không có quyền ghi file
Kiểm tra:
ls -ld /root/
Connection refused
Nguyên nhân:
- SSH chưa chạy
- Sai port SSH
- Firewall chặn
Kiểm tra:
systemctl status sshd
No such file or directory
Nguyên nhân:
- Sai đường dẫn file
- File không tồn tại
Kiểm tra:
ls -lah
Những Điều Cần Lưu Ý Khi Sử Dụng SCP
- Sử dụng SSH để hoạt động — Nếu SSH bị tắt hoặc firewall chặn port SSH thì SCP sẽ không thể kết nối.
- Dùng
-Pviết hoa cho port SSH — Đây là lỗi rất nhiều người nhầm vớissh -p. - Không resume tốt khi mất mạng — Nếu transfer file lớn bị ngắt kết nối thường sẽ phải copy lại từ đầu.
- Nên sử dụng SSH Key thay vì password — Giúp tăng bảo mật và thuận tiện khi transfer tự động.
- Có thể chiếm nhiều CPU và băng thông — Đặc biệt khi transfer file lớn hoặc dùng option nén
-C. - Với dữ liệu lớn nên cân nhắc dùng RSYNC — rsync ổn định và hỗ trợ resume tốt hơn SCP.
Kết luận
SCP là công cụ đơn giản và hiệu quả giúp transfer file an toàn giữa các máy chủ Linux thông qua SSH. Với cú pháp dễ sử dụng và được tích hợp sẵn trên hầu hết hệ điều hành Linux như Ubuntu, CentOS hay AlmaLinux, SCP là công cụ rất hữu ích cho quản trị VPS và Server Linux. Hy vọng bài viết sẽ giúp bạn sử dụng SCP dễ dàng và hiệu quả hơn trong thực tế.
