Hướng Dẫn Sử Dụng Lệnh Scp Image Hướng Dẫn Sử ...

Bài viết này giới thiệu các bạn về cách sử dụng lệnh scp trên hệ điều hành Linux, giới thiệu với cách bạn về chức năng và cách sử dụng lệnh scp để các bạn có thể tự tìm hiểu và tự học Linux cơ bản dễ dàng hơn.

1. Giới thiệu scp

Lệnh scp (Secure Copy) là một công cụ được sử dụng để sao chép hoặc truyền tệp từ hệ thống từ xa sang hệ thống từ xa hoặc hệ thống từ xa sang hệ thống cục bộ. Lệnh scp mã hóa dữ liệu và mật khẩu được gửi đến một hệ thống khác để bảo mật. Thực tế, lệnh scp sử dụng kết nối ssh trong nền để thực hiện truyền tệp. Trong hướng dẫn dưới đây bạn sẽ tìm hiểu cách sử dụng lệnh scp để truyền tệp/thư mục trong Linux.

2. Cú pháp cơ bản của lệnh scp

Cú pháp cơ bản lệnh scp rất đơn giản như sau:

scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2

Trong đó:

  • [user@]host1:]: SOURCE_HOST và file1: Đường dẫn tệp nguồn
  • [user@]host2:]: DESTINATION_HOST và file2: Đường dẫn tệp đích

Các tùy chọn thường được sử dụng trong lệnh scp:

  • -r: Sử dụng cho việc truyền các thư mục.
  • -P: Sử dụng cho cổng ssh máy chủ từ xa.
  • -C: Sử dụng để nén dữ liệu trước khi gửi.
  • -c: Sử dụng để chọn mật mã để truyền dữ liệu.
3. Sử dụng lệnh scp

Các ví dụ bên dưới được thực hiện truyền file từ Macbook sang Centos 7.

3.1. Cung cấp thông tin chi tiết về quy trình scp

Lệnh scp không có tham số sẽ sao chép các tệp trong nền. Chúng ta sẽ không thấy gì trừ khi quá trình được thực hiện một số lỗi xuất hiện. Bạn có thể sử dụng tùy chọn -v để in thông tin gỡ lỗi vào màn hình. Qua đó có thể giúp bạn gỡ lỗi các vấn đề về kết nối, xác thực và cấu hình. Thực hiện như bên dưới:

MacBook% scp -v Downloads/test.txt [email protected]:/ Executing: program /usr/bin/ssh host 192.168.22.183, user root, command scp -v -t / OpenSSH_7.9p1, LibreSSL 2.7.3 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 48: Applying options for * debug1: Connecting to 192.168.22.183 [192.168.22.183] port 22. debug1: Connection established. ... debug1: Next authentication method: password [email protected]'s password: debug1: Authentication succeeded (password). Authenticated to 192.168.22.183 ([192.168.22.183]:22). debug1: channel 0: new [client-session] debug1: Requesting [email protected] debug1: Entering interactive session. debug1: pledge: network debug1: client_input_global_request: rtype [email protected] want_reply 0 debug1: Sending environment. debug1: Sending env LANG = en_US.UTF-8 debug1: Sending command: scp -v -t / Sending file modes: C0644 0 test.txt Sink: C0644 0 test.txt test.txt 100% 0 0.0KB/s 00:00 debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 debug1: channel 0: free: client-session, nchannels 1 debug1: fd 0 clearing O_NONBLOCK Transferred: sent 2268, received 2544 bytes, in 0.3 seconds Bytes per second: sent 8379.3, received 9399.0 debug1: Exit status 0

3.2. Cung cấp thời gian ước tính và tốc độ kết nối

Lệnh scp cung cấp thời gian ước tính và tốc độ kết nối để truyền tệp. Bạn thực hiện bằng cách sử dụng tùy chọn -p với lệnh scp.

MacBook% scp -p Downloads/CentOS-7-x86_64-Minimal-1611.iso [email protected]:/ [email protected]'s password: CentOS-7-x86_64-Minimal-1611.iso 100% 680MB 51.1MB/s 00:13

3.3. Chuyển nhiều file cùng một lúc

Chúng ta có thể chuyển nhiều file cùng lúc các file được chỉ định cách nhau bởi một khoảng trắng(space) như bên dưới:

MacBook% scp -p Downloads/test.txt Downloads/test1.txt Downloads/test2.txt Downloads/test3.txt [email protected]:/ [email protected]'s password: test.txt 100% 0 0.0KB/s 00:00 test1.txt 100% 0 0.0KB/s 00:00 test2.txt 100% 0 0.0KB/s 00:00 test3.txt 100% 0 0.0KB/s 00:00

3.4. Sao chép toàn bộ thư mục

Để sao chép toàn bộ thư mục chúng ta sử dụng tùu chọn -r để chỉ định thư mục. Thực hiện như sau:

MacBook% scp -p -r Downloads/TCP:IP [email protected]:/ [email protected]'s password: SCAPY-TECHNIQUE.docx 100% 5194KB 20.2MB/s 00:00 .DS_Store 100% 6148 1.9MB/s 00:00 Du phong static route bang IPSLA.docx 100% 161KB 10.4MB/s 00:00 Wireshark window 10.pcapng 100% 18MB 36.9MB/s 00:00 Wireshark kali linux.pcapng 100% 14MB 40.9MB/s 00:00 Huong dan su dung unetlab eve duoc cai san.docx 100% 374KB 29.8MB/s 00:00 Untitled.txt 100% 2209 770.2KB/s 00:00 RIP-with-Scapy.docx 100% 115KB 21.0MB/s 00:00 Cau hinh dinh tuyen Tinh.docx 100% 336KB 33.1MB/s 00:00

3.5. Tăng tốc độ truyền

Chúng ta sử dụng tùy chọn C để tăng tốc độ truyền để tiết kiệm thời gian và băng thông. Các tập tin được nén khi truyền và giải nén ở đích.

Khi chúng ta chưa sử dụng tuỳ chọn C:

MacBook% scp -p Downloads/MANG/Cau-hinh-Active-Directory-Replication-Tren-Windows-server-2012.docx [email protected]:/ [email protected]'s password: Cau hinh Active Directory Replication Tren Windows server 2012.docx 100% 1519KB 13.9MB/s 00:02

Sau khi chúng ta sử dụng tuỳ chọn C:

MacBook% scp -Cp Downloads/MANG/Cau-hinh-Active-Directory-Replication-Tren-Windows-server-2012.docx [email protected]:/ [email protected]'s password: Cau hinh Active Directory Replication Tren Windows server 2012.docx 100% 1519KB 48.3MB/s 00:01

Qua 2 ví dụ trên cho chúng ta thấy khi sử dụng tuỳ chọn C dữ liệu truyền sẽ nhanh hơn khi chúng ta không sử dụng.

Lưu ý: Phương pháp nén sẽ không hoạt động khi tệp nguồn đã được nén. File có đuôi như .zip, .rar, pictures, và .iso sẽ không bị ảnh hưởng bởi tuỳ chọn C.

3.6. Hạn chế sử dụng băng thông

Tùy chọn l được dùng để hạn chế băng thông sử dụng tính bằng Kbit/s. Nếu bạn không muốn scp chiếm toàn bộ băng thông có sẵn. Chúng ta thực hiện như sau:

# Không sử dụng tùy chọn l MacBook% scp -p Downloads/pass.docx [email protected]:/ [email protected]'s password: pass.docx 100% 1059KB 46.2MB/s 00:00 #Sử dụng tùy chọn l MacBook% scp -pl 400 Downloads/pass.docx [email protected]:/ [email protected]'s password: pass.docx 100% 1059KB 50.8KB/s 00:20

Giá trị 400 sau tuỳ chọn -l có nghĩa là chúng ta giới hạn băng thông cho quá trình scp chỉ 50 KB/giây. Trong khi scp tính bằng Kilobyte/giây (KB/s). Vì vậy, nếu bạn muốn giới hạn băng thông cho scp tối đa chỉ 50KB/s, bạn cần đặt nó thành 50 x 8 = 400.

3.7. Chọn một mật mã để mã hóa tập tin

Theo mặc định scp sử dụng AES-128 để mã hóa tập tin. Nếu bạn muốn thay đổi để mật mã khác để mã hóa nó, bạn có thể sử dụng tùy chọn -c. Chúng ta chạy lệnh như sau:

MacBook% scp -c 3des Downloads/test.txt [email protected]:/ [email protected]'s password: test.txt 100% 0 0.0KB/s 00:00

Lệnh trên cho scp sử dụng thuật toán 3des để mã hóa tệp.

Lưu ý: Đây là tùy chọn -c chứ không phải tùy chọn C

3.8. Chỉ định cổng cụ thể để sử dụng với SCP

Theo mặc định thì lệnh scp sử dụng cổng 22 làm cổng mặc định. Nhưng vì lý do bảo mật, bạn có thể thay đổi cổng này sang cổng khác.

Ví dụ: Chúng ta đang sử dụng cổng 2019. Thực hiện như bên dưới:

MacBook%scp -P 2019 -p Downloads/test.txt [email protected]:/ Enter passphrase for key '/Users/dang/.ssh/id_rsa': test.txt 100% 0 0.0KB/s 00:00

3.9. Vô hiệu hóa đồng hồ đo tiến độ và thông báo

Nếu chúng ta không xem đồng hồ đo tiến độ và các thông báo chẩn đoán từ scp, chúng ta có thể vô hiệu hóa nó bằng cách sử dụng tùy chọn -q. Như bên dưới:

MacBook% scp -q Downloads/test.txt [email protected]:/ [email protected]'s password:

Qua ví dụ trên cho chúng ta thấy, sau khi nhập mật khẩu không có bất kỳ thông tin nào về quy trình scp.

3.10. Chỉ định file nhận dạng

Khi sử dụng xác thực dựa trên khóa (không sử dụng mật khẩu), bạn sẽ cần chỉ định tệp nhận dạng chứa khóa riêng. Chúng ta chạy lệnh như cú pháp sau:

scp -vCq -i private_key.pem SOURCE_HOST[Đường dẫn tệp nguồn] DESTINATION_HOST[Đường dẫn tệp đích]

3.11. Sử dụng tệp ssh_config

Sử dụng tùy chọn -F để chỉ định tệp ssh_config. Cú pháp như sau:

scp -vC -F /home/user/my_ssh_config SOURCE_HOST[Đường dẫn tệp nguồn] DESTINATION_HOST[Đường dẫn tệp đích] 4. Lời kết

Qua bài trên, giúp cho chúng ta biết cách sử dụng lệnh scp để sao chép hoặc truyền dữ liệu giữa hệ thống từ xa sang hệ thống từ xa hoặc hệ thống từ xa sang hệ thống cục bộ trên hệ điều hành Linux.

Từ khóa » Cách Sử Dụng Lệnh Scp