Lệnh scp trong linux

Lệnh SCP trong Linux: Sao Chép An Toàn và Hiệu Quả

Bạn là một người dùng Linux và thường xuyên cần sao chép file giữa các máy tính? Vậy thì lệnh scp (Secure Copy) chính là công cụ bạn không thể bỏ qua. Trong bài viết này, chúng ta sẽ cùng nhau khám phá scp là gì, cách sử dụng nó, và những lợi ích mà nó mang lại. Hãy cùng bắt đầu hành trình khám phá thế giới lệnh scp đầy thú vị này nhé!

scp không chỉ đơn thuần là một lệnh sao chép file, nó còn là một công cụ bảo mật, đảm bảo dữ liệu của bạn được truyền đi một cách an toàn. Vậy nên, nắm vững cách sử dụng scp sẽ giúp bạn tiết kiệm thời gian và nâng cao hiệu quả công việc.

SCP là gì?

scp là một lệnh trong Linux dùng để sao chép file giữa các máy tính thông qua giao thức SSH (Secure Shell). Điều này có nghĩa là dữ liệu của bạn sẽ được mã hóa trong quá trình truyền tải, giúp bảo vệ khỏi những kẻ xấu có ý định đánh cắp thông tin. scp không chỉ sao chép file, mà còn có thể sao chép thư mục một cách dễ dàng.

So với các phương pháp sao chép file khác như FTP (File Transfer Protocol) vốn không được mã hóa, scp an toàn hơn rất nhiều. Nó tận dụng tính bảo mật của SSH để đảm bảo an toàn cho dữ liệu của bạn.

Cú Pháp Lệnh SCP

Cú pháp cơ bản của lệnh scp như sau:

scp [tùy chọn] [nguồn] [đích]

Trong đó:

  • [tùy chọn]: Các tùy chọn để điều chỉnh hành vi của lệnh scp.
  • [nguồn]: Đường dẫn đến file hoặc thư mục bạn muốn sao chép.
  • [đích]: Đường dẫn đến nơi bạn muốn lưu file hoặc thư mục đã sao chép.

Để hiểu rõ hơn, chúng ta sẽ đi vào một vài ví dụ cụ thể.

Các Ví Dụ Sử Dụng Lệnh SCP

1. Sao chép file từ máy tính cục bộ lên máy chủ từ xa

Giả sử bạn muốn sao chép file document.txt từ máy tính của bạn lên máy chủ có địa chỉ IP là 192.168.1.100, vào thư mục /home/user với tên người dùng là user, bạn có thể sử dụng lệnh sau:

scp document.txt user@192.168.1.100:/home/user

Lệnh này sẽ yêu cầu bạn nhập mật khẩu của người dùng user trên máy chủ 192.168.1.100. Sau khi xác thực thành công, file document.txt sẽ được sao chép vào thư mục /home/user trên máy chủ.

2. Sao chép file từ máy chủ từ xa về máy tính cục bộ

Ngược lại, nếu bạn muốn sao chép file report.pdf từ máy chủ 192.168.1.100 với người dùng user vào thư mục /home/localuser/documents trên máy tính cục bộ của bạn (với tên người dùng là localuser), bạn có thể sử dụng lệnh sau:

scp user@192.168.1.100:/home/user/report.pdf /home/localuser/documents

Tương tự, bạn sẽ cần nhập mật khẩu để xác thực trước khi file được sao chép.

3. Sao chép thư mục

Để sao chép một thư mục, bạn cần sử dụng tùy chọn -r (recursive). Ví dụ, để sao chép thư mục project từ máy tính cục bộ lên máy chủ 192.168.1.100, bạn sử dụng lệnh:

scp -r project user@192.168.1.100:/home/user

Lệnh này sẽ sao chép toàn bộ nội dung của thư mục project (bao gồm cả các file và thư mục con) lên máy chủ.

4. Sử dụng Key-based Authentication (Xác thực bằng khóa)

Để tránh việc phải nhập mật khẩu mỗi khi sử dụng scp, bạn có thể sử dụng key-based authentication. Điều này giúp tăng tính tiện lợi và bảo mật. Bạn cần tạo một cặp khóa (khóa công khai và khóa riêng tư) và sau đó sao chép khóa công khai lên máy chủ.

Để tạo cặp khóa, bạn sử dụng lệnh ssh-keygen.

ssh-keygen

Sau đó, sao chép khóa công khai (thường là ~/.ssh/id_rsa.pub) lên máy chủ vào file ~/.ssh/authorized_keys.

Các Tùy Chọn Thường Dùng của Lệnh SCP

Lệnh scp cung cấp nhiều tùy chọn hữu ích để điều chỉnh hành vi của nó. Dưới đây là một số tùy chọn quan trọng:

  • -r: Sao chép thư mục (recursive).
  • -P [port]: Chỉ định cổng SSH (mặc định là 22).
  • -p: Giữ nguyên thời gian sửa đổi, thời gian truy cập và các mode.
  • -q: Tắt thông báo tiến trình.
  • -C: Bật nén dữ liệu trong quá trình truyền tải.
  • -l limit: giới hạn băng thông sử dụng (kbit/s)

Ví Dụ Thực Tế

Hãy xem xét một số tình huống thực tế mà bạn có thể sử dụng scp:

  • Sao lưu dữ liệu: Bạn có thể sử dụng scp để sao lưu các file quan trọng từ máy chủ lên máy tính cá nhân của bạn.
  • Triển khai ứng dụng: Bạn có thể sử dụng scp để tải các file ứng dụng lên máy chủ web.
  • Chia sẻ file: Bạn có thể sử dụng scp để chia sẻ file với đồng nghiệp một cách an toàn.
  • Quản lý máy chủ từ xa: Bạn có thể sử dụng scp để sao chép các file cấu hình giữa các máy chủ.

Bảng So Sánh SCP với FTP và SFTP

Tính năng SCP FTP SFTP
Bảo mật Mã hóa SSH Không mã hóa Mã hóa SSH
Sử dụng cổng 22 (mặc định) 20, 21 22
Độ phức tạp Đơn giản Đơn giản Tương đối đơn giản
Yêu cầu SSH server FTP server SSH server

Bảng trên cho thấy scp và SFTP đều sử dụng SSH để mã hóa dữ liệu, trong khi FTP thì không. Do đó, scp và SFTP an toàn hơn FTP rất nhiều.

Câu Hỏi Thường Gặp (FAQ)

1. Tại sao tôi nên sử dụng SCP thay vì FTP?

scp an toàn hơn FTP vì nó mã hóa dữ liệu trong quá trình truyền tải, bảo vệ bạn khỏi các cuộc tấn công nghe lén. FTP không mã hóa dữ liệu, khiến nó dễ bị tấn công.

2. Làm thế nào để tăng tốc độ sao chép bằng SCP?

Bạn có thể sử dụng tùy chọn -C để bật nén dữ liệu, hoặc điều chỉnh kích thước buffer truyền bằng tùy chọn -S.

3. SCP có thể sao chép file lớn không?

Có, scp có thể sao chép file lớn. Tuy nhiên, tốc độ sao chép có thể bị ảnh hưởng bởi tốc độ mạng và cấu hình phần cứng.

4. Làm sao để xử lý lỗi "Permission denied"?

Lỗi "Permission denied" thường xảy ra khi bạn không có quyền truy cập vào thư mục đích. Hãy kiểm tra lại quyền truy cập của bạn và đảm bảo bạn có quyền ghi vào thư mục đó.

Kết Luận

Lệnh scp là một công cụ mạnh mẽ và an toàn để sao chép file trong Linux. Với khả năng mã hóa dữ liệu và nhiều tùy chọn điều chỉnh, scp là lựa chọn lý tưởng cho việc sao chép file giữa các máy tính. Hy vọng bài viết này đã cung cấp cho bạn những kiến thức cần thiết để sử dụng scp một cách hiệu quả. Chúc bạn thành công!

Last Updated : 20/08/2025