Lệnh scp trong Linux là một trong những công cụ giúp người dùng chia sẻ tệp từ xa giữa các máy cục bộ và máy chủ từ xa. Trong bài viết này, chúng ta sẽ thảo luận chi tiết về lệnh scp, cùng với cách sử dụng và một số tính năng bổ sung của lệnh này.
1. Lệnh Scp là gì
Scp, từ viết tắt của Secure Copy (sao chép an toàn), là một tiện ích dòng lệnh (command) trong hệ điều hành dựa trên Linux cho phép người dùng sao chép tệp giữa máy chủ từ xa và máy chủ cục bộ. Vì lệnh này chuyển tệp qua mạng đến một số máy chủ lưu trữ khác, nên cần có quyền truy cập SSH. SSH (Secure Shell) là một giao thức cho phép bạn xử lý các dịch vụ mạng một cách an toàn qua bất kỳ mạng nào.
Lệnh scp cũng hỗ trợ một số tính năng bổ sung như chỉ định các tham số xác thực, thay đổi cổng, chuyển thư mục và hơn thế nữa.
2. Tại sao Scp lại tốt hơn các phương pháp khác
Scp thường được ưu tiên hơn các phương pháp truyền tệp khác vì trong quá trình truyền, kết nối giữa hai máy chủ được mã hóa. Giao thức SSH chịu trách nhiệm mã hóa các tệp, mật khẩu và bất kỳ chi tiết nhạy cảm nào khác.
Các phương thức truyền khác như Telnet hoặc FTP không có bất kỳ mã hóa nào. Ngoài ra, cặp khóa người dùng/mật khẩu cũng được lưu dưới dạng văn bản thuần túy – điều này không an toàn về mặt bảo mật. Hacker có thể dễ dàng truy cập thông tin của bạn bằng xâm nhập vào mạng của bạn.
>>> Đọc ngay: 6 yếu tố cần xem xét khi lựa chọn một bản phân phối Linux
3. Cách truyền tệp an toàn bằng Scp
Sử dụng lệnh scp, bạn có thể chuyển các tệp giữa:
- Máy chủ cục bộ và máy chủ từ xa
- Máy chủ từ xa và hệ thống cục bộ
- Hai máy chủ từ xa
3.1 Cú pháp cơ bản
Cú pháp (syntax) cơ bản của lệnh scp là:
scp [options] [source] [destination]
3.2 Chuyển từ máy chủ cục bộ sang hệ thống từ xa
Nếu bạn là quản trị viên máy chủ, thì có thể có lúc bạn cần chuyển tệp giữa máy chủ cục bộ và máy chủ từ xa. Để tải tệp có tên document.txt lên máy chủ từ xa, gõ lệnh:
scp /home/document.txt user@remote-host:/home/document.txt
Lưu ý rằng nguồn là đường dẫn của tệp trên bộ nhớ cục bộ của bạn. Và đích đến là đường dẫn của tệp trên máy chủ từ xa. Bạn cũng phải chỉ định tên người dùng và tên miền của máy chủ từ xa. Trong lệnh trên, user là tên người dùng và remote-host (máy chủ từ xa) là tên miền.
Đường dẫn đích được phân tách khỏi chi tiết máy chủ từ xa bằng ký tự dấu hai chấm. Hãy nhớ rằng người dùng phải tồn tại trên máy chủ từ xa nếu bạn muốn chuyển tệp thành công. Ngoài ra, người dùng phải có quyền ghi vào thư mục mà bạn muốn lưu tệp.
Sau khi thực hiện lệnh nêu trên, hệ thống sẽ hỏi bạn mật khẩu của người dùng từ xa. Nhập mật khẩu và nhấn Enter .
user@remote-host's password:
Nếu mật khẩu hợp lệ, quá trình chuyển tệp sẽ bắt đầu. Nếu bạn nhập sai mật khẩu, sẽ xảy ra lỗi.
Trước khi cố gắng sao chép tệp bằng lệnh scp, hãy đảm bảo rằng chi tiết máy chủ từ xa và mật khẩu là chính xác bằng cách đăng nhập vào máy chủ bằng SSH.
3.3 Từ Máy chủ Từ xa đến Máy chủ Cục bộ
Để sao chép tệp từ máy chủ từ xa sang máy chủ cục bộ, chỉ cần hoán đổi vị trí của nguồn và đường dẫn đích trong lệnh scp.
scp user@remote-host:/home/document.txt /home/document.txt
Hệ thống sẽ yêu cầu bạn nhập mật khẩu của người dùng từ xa một lần nữa. Nhập mật khẩu để xác nhận quá trình chuyển.
3.4 Giữa hai máy chủ từ xa
Để sao chép tệp giữa hai máy chủ từ xa, cả đường dẫn nguồn và đường dẫn đích phải là thư mục trên máy chủ từ xa.
scp user1@remote-host1:/home/document.txt user2@remote-host2:/home/folder/document.txt
Một lời nhắc sẽ xuất hiện yêu cầu bạn nhập mật khẩu cho cả hai người dùng.
>>> Đọc ngay: Cách bắt đầu sử dụng Linux
4. Tùy chọn dòng lệnh Scp
Ngoài việc chỉ đơn giản là chuyển các tệp từ nguồn đến đích, scp có một số tùy chọn bổ sung có thể được thực hiện bằng cách sử dụng một số đối số (argument) cụ thể.
4.1 Thay đổi cổng
Theo mặc định, lệnh scp hoạt động trên cổng 22. Tuy nhiên, bạn có thể thay đổi cấu hình mặc định và thay đổi cổng. Flag -P cho phép bạn làm điều tương tự.
Để sử dụng một số cổng khác trong khi sao chép tệp từ máy chủ cục bộ sang máy chủ từ xa:
scp -P 35 /home/document.txt user@remote-host:/home/document.txt
Lệnh nói trên sẽ đảm bảo rằng lệnh scp sử dụng cổng 35 để truyền tệp.
4.2 Bảo tồn Dấu thời gian Tệp
Bạn có thể biết rằng Linux đặt dấu thời gian cho mỗi tệp để lưu trữ thời gian sửa đổi, thời gian truy cập và thời gian thay đổi liên quan đến tệp. Khi bạn chuyển tệp sang vị trí khác bằng scp, dấu thời gian của tệp đích sẽ bị ghi đè bởi thời gian hiện tại.
Nếu vì bất kỳ lý do gì bạn muốn giữ lại các dấu thời gian này, hãy sử dụng flag -p . Chú ý rằng flag -P và -p khác với nhau.
scp -p /home/document.txt user@remote-host:/home/remote/document.txt
4.3 Sao chép thư mục
Nếu bạn muốn sao chép thư mục thay vì tệp, hãy sử dụng flag -r để chuyển các thư mục.
scp -r user@remote-host:/home/videos /home/videos
4.4 Chế độ ẩn (suppressed mode)
Khi bạn nhập lệnh scp để chuyển tệp, terminal sẽ hiển thị thanh tiến trình và các thông tin liên quan khác trên màn hình. Tuy nhiên, bạn có thể chọn không xem thông tin này bằng flag -q .
scp -q user@remote-host:/home/document.txt /home/document.txt
4.5 Sử dụng tệp cặp khóa (keypair) để xác thực
Nếu bạn muốn xác thực kết nối máy chủ từ xa bằng tệp cặp khóa, hãy chỉ định đường dẫn của tệp bằng flag -i .
scp -i /home/keypair.pem /home/document.txt user@remote-host:/home/document.txt
4.6 Xâu chuỗi nhiều flag lại với nhau
Cũng giống như bất kỳ lệnh Linux nào khác, bạn có thể xâu chuỗi nhiều đối số lại với nhau để làm cho lệnh scp hiệu quả hơn.
Ví dụ: để thay đổi cổng và truyền tệp ở suppressed mode:
scp -P 34 -q user@remote-host:/home/document.txt home/document.txt
Nếu bạn muốn sử dụng tệp cặp khóa để xác thực và cần sao chép các thư mục vào đường dẫn đích:
scp -i /home/secret/keypair.pem -r /home/folder user@remote-host:/home/folder
>>> Đọc ngay: Cách cài đặt Microsoft Office trên Linux
5. Truyền tệp giữa các hệ thống Linux
Trong thế giới của internet, việc chuyển các tập tin giữa các hệ thống đã trở thành một nhiệm vụ thiết yếu. Đối với những người đang quản lý máy chủ Linux, đôi khi điều quan trọng là phải sao lưu máy chủ trước khi đưa ra một lệnh cụ thể. Trong những tình huống như thế này, lệnh scp rất hữu ích.
Tương tự, lệnh cp giúp sao chép các tệp từ vị trí này sang vị trí khác trong hệ thống cục bộ. Có rất nhiều lệnh cơ bản bắt buộc phải có nếu bạn mới bắt đầu với Linux.
>>> Nếu bạn đang có nhu cầu tìm hiểu về khóa học lập trình đi làm ngay. Hãy liên hệ với FUNiX ngay tại đây:
Cách tạo ảnh Mosaic trên Linux với Polyfoto
Cách ghi chú trong Terminal Linux với ứng dụng ghi chú tnote
Cách sử dụng lệnh wc trong Linux
Hướng dẫn cách sử dụng lsof để theo dõi file đang mở trên Linux
Dịch từ: https://www.makeuseof.com/scp-command-in-linux/
Vân Nguyễn
Bình luận (0
)