Giảm 50% tất cả các gói, thời gian có hạn. Bắt đầu từ $2.48/mo
12 phút còn lại
Máy chủ & Hệ điều hành

SCP từ máy chủ từ xa xuống máy cục bộ – Lệnh SCP Linux

Ada Lovegood By Ada Lovegood 12 phút đọc
scp từ máy chủ từ xa xuống máy cục bộ

Bạn có bao giờ muốn chuyển một số tệp trên mạng máy tính và gặp phải thách thức về bảo mật không? Vâng, bạn không thể chỉ thả các tệp của mình ra ngoài mạng và hy vọng chúng sẽ an toàn và bảo mật, giống như Cô Bé Quàng Khăn Đỏ! Bạn cần các biện pháp bảo mật. Bạn nên sử dụng giao thức truyền tệp đảm bảo dữ liệu của bạn được bảo vệ khỏi truy cập không được phép, nghe trộm mạng, vi phạm dữ liệu, và các loại mối đe dọa khác.

Secure Copy Protocol (SCP) là một giao thức mạng truyền tệp mạnh mẽ chuyển tệp giữa các máy khác nhau trên mạng. Trong bài viết blog này, chúng tôi sẽ làm quen thêm với giao thức này và khám phá các khả năng sử dụng SCP từ máy từ xa đến máy cục bộ.

SCP hoạt động như thế nào? 

SCP sử dụng SSH (Secure Shell) để truyền tệp của bạn. Nhưng điều đó có nghĩa là gì? SSH là giao thức mạng để truy cập an toàn vào máy chủ từ xa. Nó được trang bị các phương pháp xác thực, mã hóa và xác minh tính toàn vẹn của các tệp dữ liệu được truyền. SCP dựa vào các tính năng bảo mật và phương pháp mã hóa do SSH cung cấp để truyền tệp qua mạng một cách an toàn. Bằng cách này, bạn có thể sử dụng SCP từ máy ở xa đến máy chủ cục bộ để kết nối an toàn và truyền tệp, đồng thời yên tâm về tính xác thực và tính bảo mật của dữ liệu.

Sử dụng SCP để truyền tệp: Tại sao và cách thực hiện? 

Sử dụng SCP từ máy ở xa đến cục bộ và SCP từ cục bộ đến máy ở xa là một cách hiệu quả và linh hoạt để truyền tệp. SCP cung cấp một số lợi thế lớn cho truyền tệp. Chẳng hạn, SCP cung cấp các biện pháp bảo mật mạnh mẽ hơn so với các phương pháp truyền tệp khác như FTP. Một khía cạnh khác mà SCP khác biệt với các giao thức khác là tốc độ. SCP thường nhanh hơn nhiều so với các giao thức khác như SFTP, và nó là một công cụ tuyệt vời để truyền tệp giữa các máy Linux.

Bạn có thể di chuyển tệp với SCP:

  • Từ máy cục bộ đến máy ở xa
  • Từ máy ở xa đến máy cục bộ
  • Từ máy ở xa này đến máy ở xa khác.

Bây giờ, hãy tiến hành sử dụng cú pháp Linux SCP cho truyền tệp. Điều đầu tiên bạn cần làm là thiết lập SSH trên cả hai máy tính của bạn. Tuy nhiên, điều quan trọng là lưu ý rằng SSH thường được cài đặt trên tất cả các máy Linux. Vì vậy, nếu đó là trường hợp của bạn, bạn có thể bỏ qua các bước này.

1. Thiết lập SSH

Chạy lệnh sau để cài đặt SSH:

sudo apt install openssh-client

2. Tạo khóa SSH

Thiết bị client cần thiết lập kết nối SSH. Để tạo kết nối an toàn giữa máy client và server, bạn cần một khóa riêng và một khóa công khai. Lệnh này sẽ tạo cặp khóa SSH cho bạn:

ssh-keygen

Khi chạy lệnh này, bạn sẽ được yêu cầu nhập tên cho cặp khóa và một mật khẩu (tùy chọn). Sau khi cặp khóa được tạo, bạn cần sao chép khóa công khai sang máy server.

Bây giờ, hãy xem xét cú pháp chung của lệnh SCP:

scp [options] [source username@IP]:/[directory/file name] [destination username@IP]:/[directory]
  • [options] > Dấu ngoặc đầu tiên có thể được thay thế bằng các tùy chọn khác nhau của lệnh SCP mà chúng ta sẽ tìm hiểu sau.
  • [source username@IP] > Dấu ngoặc này nên được thay thế bằng tên người dùng và địa chỉ IP của máy cục bộ. Ví dụ: [email protected]
  • [directory/file name] > Dấu ngoặc này nên được thay thế bằng vị trí của tệp bạn muốn gửi.
  • [destination username@IP] > Dấu ngoặc này nên được thay thế bằng tên người dùng và địa chỉ IP của máy nhận.
  • [directory] > Thay thế phần này bằng vị trí bạn muốn lưu tệp trên máy remote.

Vậy là bạn đã hiểu cú pháp chung của lệnh. Bây giờ hãy xem tất cả các tùy chọn hữu ích của lệnh SCP:

Tùy chọn Trường hợp sử dụng
-C
Tùy chọn này nén các tệp của bạn trong quá trình chuyển.
-c <cipher>
Bạn có thể dùng tùy chọn này để chỉ định một cipher cụ thể cho SCP. Ví dụ: scp -c <aes128-ctr>.
-v
Tùy chọn này hiển thị quy trình từng bước của quá trình chuyển tệp.
-l <limit in kilobytes>
Tùy chọn này cho phép bạn giới hạn băng thông tối đa. Ví dụ, lệnh sau đặt mức sử dụng băng thông thành 100 kb mỗi giây: scp -l 100
-P
Tùy chọn này cho phép bạn thay đổi cổng SSH của máy remote bạn muốn kết nối. SCP sử dụng cổng 22 theo mặc định.
-S <tên chương trình>
Bạn có thể dùng tùy chọn này để chọn một chương trình để kết nối.
-r
Sao chép toàn bộ tệp hoặc thư mục một cách đệ quy.

Truyền tệp với SCP 

Bạn nhớ rằng chúng ta có ba loại chuyển tệp với SCP, phải không? Bây giờ, hãy cùng khám phá từng loại chuyển tệp. Trước tiên, hãy xác định mục đích. Tôi có một bức ảnh mèo trên desktop của máy Linux, bước đầu tiên tôi muốn chuyển nó sang máy server remote Linux. Sau đó, tôi sẽ chuyển nó ngược lại máy cục bộ của mình. Cuối cùng, con mèo may mắn sẽ chuyển giữa hai máy remote.

chuyển một hình ảnh bằng scp

SCP từ máy cục bộ đến máy ở xa 

Lệnh này sẽ chuyển tệp của bạn từ máy cục bộ sang máy server remote:

scp [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Để sử dụng lệnh scp với mật khẩu, bạn cần nhập mật khẩu của máy server remote. Sau đó, việc chuyển tệp hoàn thành.

Sử dụng SCP để chuyển tệp từ cục bộ sang remote

SCP từ máy ở xa đến máy cục bộ

Để thực hiện quá trình ngược lại, bạn không cần truy cập terminal của máy remote. Trên terminal của máy cục bộ, gõ lệnh này:

scp [username]@[IP address of the remote machine]:[path/to/the/file] [path/to/the/location]

Như bạn có thể thấy, chúng ta vừa hoán đổi hai phần của lệnh này.

Sử dụng SCP để chuyển tệp từ remote sang cục bộ

SCP giữa hai máy ở xa

Bây giờ, hãy chuyển file giữa hai máy chủ từ xa. Bước này yêu cầu mật khẩu của cả hai máy chủ, nên hãy chắc chắn bạn có sẵn. Dùng lệnh này để chuyển file giữa hai máy tính từ xa:

scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]

sử dụng scp để chuyển file giữa hai hệ thống từ xa

Các lệnh SCP phổ biến khác

Các lệnh SCP phổ biến nhất là scp từ máy từ xa về máy cục bộ, scp từ máy cục bộ tới máy từ xa, và SCP giữa hai máy chủ từ xa. Nhưng đừng dừng lại ở đó, hãy khám phá thêm các ví dụ scp hữu ích khác với Linux.

1. Sao chép toàn bộ thư mục một cách đệ quy

Hãy tưởng tượng bạn muốn chuyển toàn bộ thư mục cùng với tất cả các file bên trong. Chuyển từng file một sẽ tốn rất nhiều thời gian. Thay vào đó, bạn có thể dùng lệnh scp chuyển nhiều file để sao chép thư mục một cách đệ quy:

scp -r [Path/to/directory] [username of the remote server]@[Ip address]:/[path/to/the/location]

Điều này rất hữu ích trong nhiều tình huống:

  • Triển khai Mã khi triển khai code hoặc ứng dụng web, bạn có thể cần chuyển toàn bộ thư mục với tất cả các thành phần như file và script.
  • Sao lưu và Đồng bộ hóa: Nếu bạn muốn có bản sao lưu của toàn bộ thư mục hoặc muốn đồng bộ hóa hai thư mục trên máy cục bộ và máy chủ từ xa, bạn cần sao chép mọi thứ một cách đệ quy.
  • Chuyển đổi Hệ thống Một nhiệm vụ quan trọng trong quá trình di chuyển hệ thống là sao chép và chuyển mọi thông tin quan trọng. Sử dụng lệnh SCP với tùy chọn -r sẽ đảm bảo bạn không bỏ sót gì trong quá trình di chuyển.

2. Giới hạn mức sử dụng băng thông

Nếu bạn muốn kiểm soát tốc độ truyền dữ liệu, bạn có thể dùng lệnh sau:

scp -l <limit> [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Tại sao bạn lại muốn làm điều đó?
Trong hai tình huống này, bạn có thể dùng cú pháp scp Linux để giới hạn băng thông:

  • Tắc mạng: Nếu mạng của bạn bị tắc nghẽn nặng, giới hạn băng thông với scp có thể giúp phân phối tài nguyên mạng. Giới hạn băng thông với SCP đảm bảo các tác vụ liên quan mạng khác chạy mà không gặp vấn đề gì. Điều này cũng quan trọng khi chuyển file qua mạng dùng chung, vì quá trình của bạn có thể làm cản trở hoạt động mạng của những người dùng khác.
  • Chuyển Tải Nền: Trong quá trình chuyển SCP chạy nền như sao lưu tự động hoặc quá trình đồng bộ hóa, có khả năng những tác vụ này sẽ tiêu thụ hết tài nguyên mạng của bạn. Trong trường hợp này, bạn có thể giới hạn băng thông trên những quá trình chuyển này để quản lý tài nguyên tốt hơn.

3. Lấy nhật ký chi tiết

Sử dụng tùy chọn -v với SCP sẽ cho bạn nhật ký chi tiết với các thông tin bổ sung về quá trình chuyển. Bạn có thể dùng lệnh dưới đây để nhận phản hồi và thông tin chi tiết:

scp -v [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Đây là lý do tại sao bạn cần nhớ và sử dụng lệnh này:

  • Khắc phục sự cố: sử dụng tùy chọn này hiển thị tiến trình chuyển file cho bạn. Bạn có thể thấy thông tin như kích thước file và phần trăm hoàn thành. Nó cũng cung cấp các thông báo lỗi và cảnh báo. Kết hợp những dữ liệu này cho phép bạn giám sát và khắc phục sự cố trong quá trình chuyển khi cần thiết.

4. Chỉ định cổng SSH

Sử dụng cú pháp scp Linux với tùy chọn -P cho phép bạn thay đổi cổng SSH. Đây là lệnh cho phép bạn làm điều đó:

scp -P [port number] [path/to/the/file] [Username]@[IP address]:[path/to/the/location]

Điều này rất hữu ích cho:

  • Cấu hình Tường lửa: Nếu cổng SSH mặc định bị hạn chế hoặc nếu bạn muốn ẩn dịch vụ SSH khỏi những mối đe dọa tiềm ẩn, bạn có thể thay đổi cổng SSH.

Có thay thế nào khác cho SCP không?

SCP nhanh chóng và an toàn, và bằng cách nắm vững cú pháp scp Linux cùng một số kiến thức khắc phục sự cố, nó có thể là công cụ duy nhất bạn cần. Tuy nhiên, không có hại gì khi xem xét các phương án thay thế.

1. rsync

rsync là công cụ chuyển file đa năng với khả năng đồng bộ hóa nâng cao, chuyển tăng dần, sao chép cục bộ và từ xa. Nó cũng có thể giảm mức sử dụng băng thông bằng cách chỉ chuyển những phần khác biệt giữa file nguồn và đích. Một ưu điểm tuyệt vời khác của rsync là nó có thể tiếp tục chuyển file bị gián đoạn từ chỗ nó dừng lại.

Ưu điểm của rsync

  • Đồng bộ hóa file và thư mục hiệu quả.
  • Hỗ trợ thuật toán delta-transfer, giảm lưu lượng dữ liệu truyền tải.
  • Có thể tiếp tục truyền tải bị gián đoạn.

rsync Nhược điểm

  • Yêu cầu rsync được cài đặt trên cả hệ thống nguồn và đích.
  • Yêu cầu cấu hình phức tạp hơn và nhiều tùy chọn lệnh so với scp.

2. SFTP (Giao thức truyền tệp SSH)

SFTP cung cấp cách truyền tải tệp an toàn qua SSH. Nó cung cấp chức năng tương tự FTP nhưng hoạt động trên kết nối SSH được mã hóa, giống như SCP. Tuy nhiên, trong một số khía cạnh, ưu điểm của SFTP vượt trội hơn SCP. SCP không thể tạo danh sách thư mục, tạo hoặc xóa thư mục, v.v. Nhưng SFTP có thể thực hiện tất cả những tác vụ này.

SFTP - Ưu điểm

  • Truyền tải tệp an toàn với mã hóa.
  • Khả năng quản lý tệp từ xa.
  • Hỗ trợ rộng rãi trên hầu hết các hệ thống Linux và Unix.

Nhược điểm SFTP

  • Cú pháp và cách sử dụng lệnh khác biệt so với FTP truyền thống.
  • Có thể hỗ trợ hạn chế trên một số hệ thống nhúng hoặc thiết bị.

3. FTP (Giao thức truyền tệp)

FTP là giao thức truyền tải tệp được sử dụng rộng rãi. Nó hoạt động theo mô hình client-server và cung cấp chức năng truyền tải tệp cơ bản.

Ưu điểm FTP

  • Hỗ trợ rộng rãi trên nhiều nền tảng khác nhau.
  • Có sẵn các ứng dụng khách dòng lệnh và đồ họa quen thuộc.

Những nhược điểm của FTP

  • Thiếu mã hóa, bảo mật kém hơn so với scp và sftp.
  • Có thể yêu cầu cấu hình tường lửa bổ sung để thiết lập kết nối.
  • Xác thực văn bản thuần túy.

Tóm lại, mặc dù scp là lựa chọn đơn giản và đáng tin cậy cho truyền tải tệp an toàn qua SSH, các lựa chọn thay thế như rsync, sftp và FTP có thể cung cấp các tính năng và tính linh hoạt bổ sung tùy theo yêu cầu cụ thể.
Vậy làm cách nào để quyết định chọn cái nào? Bạn nên xem xét các yếu tố như bảo mật, nhu cầu đồng bộ hóa, dễ sử dụng và khả năng tương thích với hệ thống và giao thức của bạn. Ví dụ, nếu bảo mật và bảo mật dữ liệu là những yếu tố quan trọng nhất trong truyền tải tệp của bạn, thì FTP không phải là lựa chọn tốt.

Kết luận 

SCP là công cụ truyền tải tệp nhanh và an toàn giữa các máy tính. Bạn có thể sử dụng scp từ từ xa đến máy cục bộ, từ máy cục bộ đến từ xa, và thậm chí giữa hai hệ thống từ xa để truyền tải tệp. Và mặc dù có những lựa chọn thay thế cho SCP hoạt động tốt, như rsync, nó vượt trội hơn chúng theo nhiều cách, đặc biệt là về bảo mật và tốc độ. Trong bài viết này, chúng tôi đã thảo luận về SCP, các trường hợp sử dụng và các lựa chọn thay thế, đồng thời cung cấp một bảng hỗ trợ để dễ dàng truy cập cú pháp thường xuyên sử dụng.

Câu hỏi thường gặp 

Có những mối lo ngại về bảo mật nào mà tôi nên lưu ý khi sử dụng SCP từ máy ở xa đến máy cục bộ?  

SCP là công cụ khá an toàn và bảo mật, bạn không cần phải lo lắng về mối đe dọa bảo mật khi sử dụng nó. Tuy nhiên, luôn nên thực hiện các biện pháp bảo mật bổ sung mà bạn có thể.

Những lỗi phổ biến nào xảy ra khi sử dụng SCP từ máy ở xa đến máy cục bộ? 

Khi sử dụng SCP để truyền tải tệp từ máy chủ từ xa đến máy cục bộ, người dùng có thể gặp phải một số lỗi phổ biến. Dưới đây là hai lỗi phổ biến nhất khi sử dụng SCP từ xa đến cục bộ.

  1. No such file or directory: lỗi này xảy ra khi bạn chưa chỉ định đúng số cổng, cài đặt quyền tệp không chính xác hoặc thông tin đăng nhập không chính xác.
  2. Host Key Verification Failed: Thông báo lỗi này xảy ra khi khóa máy chủ thay đổi do nâng cấp máy chủ. Khóa máy chủ cho thấy bạn đã kết nối với máy chủ đó trước đó, và khi xác minh khóa máy chủ thất bại, nó cho thấy rằng danh tính của máy chủ đã thay đổi. Lỗi này đang cố gắng bảo vệ bạn khỏi kết nối với máy chủ giả mạo.

Làm cách nào để sử dụng SCP để truyền tệp giữa các hệ thống ở xa?

Để truyền tải tệp thành công giữa các hệ thống bằng SCP, cả hai máy tính nên có thể truy cập được qua SSH. Bạn cũng cần địa chỉ IP và mật khẩu của các máy từ xa. Phần còn lại chỉ là sử dụng lệnh SCP đúng.

scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]

Sau khi nhập lệnh này, bạn sẽ được yêu cầu cung cấp mật khẩu cho các máy chủ. Sau đó, tệp của bạn sẽ được truyền tải.

Chia sẻ

Bài viết mới từ blog

Tiếp tục đọc.

Những Ứng Dụng Self-Hosted Tốt Nhất Bạn Có Thể Chạy với Cosmos Cloud hình ảnh bìa với các bảng điều khiển ứng dụng xung quanh một bảng điều khiển Cosmos.
Máy chủ & Hệ điều hành

Những Ứng Dụng Self-Hosted Tốt Nhất Bạn Có Thể Chạy với Cosmos Cloud: Tệp, Media, Mật khẩu, Tự động hóa & Hơn nữa!

Sau khi bạn đã thiết lập Cosmos Cloud và muốn xem những ứng dụng nào phù hợp với nó, hoặc có thể bạn chưa quyết định sử dụng Cosmos và chỉ muốn biết nó phù hợp với quy trình làm việc của bạn như thế nào

Nick BạcNick Bạc Đọc trong 16 phút
Portainer so với Cosmos Cloud để Quản lý Ứng Dụng Docker bìa có sơ đồ thiết lập hybrid và khối điều hành so với khối truy cập.
Máy chủ & Hệ điều hành

Portainer so với Cosmos Cloud: Lựa Chọn Tốt Nhất cho Quản Lý Ứng Dụng Docker

Nếu bạn đã biết về Docker và chỉ muốn cách rõ ràng hơn để chạy một stack ứng dụng phát triển, đây là câu trả lời ngắn gọn cho Portainer so với Cosmos Cloud. Portainer là lựa chọn mạnh hơn cho

Nick BạcNick Bạc 14 phút đọc
Cosmos Cloud so với CasaOS so với Umbrel biểu đồ tính năng hiển thị ba đường dẫn self-hosted trong một thế giới mạng đám mây trừu tượng.
Máy chủ & Hệ điều hành

Cosmos Cloud so với CasaOS so với Umbrel: Nền Tảng Self-Hosted Nào Phù Hợp với Thiết Lập của Bạn?

Câu trả lời ngắn gọn là CasaOS vẫn là nơi dễ nhất để bắt đầu, Umbrel có cảm giác được tuyển chọn sạch nhất, và Cosmos Cloud có ý nghĩa hơn khi bạn muốn kiểm soát chặt chẽ hơn đối với

Nick BạcNick Bạc 11 phút đọc

Sẵn sàng triển khai? Từ $2.48/tháng.

Cloud độc lập, hoạt động từ 2008. AMD EPYC, NVMe, 40 Gbps. Hoàn tiền trong 14 ngày.