Trong bài viết trước của tôi, tôi đã chia sẻ các bước để mã hóa tệp bằng khóa gpg trong Linux. Bây giờ trong bài viết này, tôi sẽ chia sẻ các lệnh và công cụ khác nhau mà bạn có thể sử dụng để sao chép tệp một cách an toàn từ máy chủ này sang máy chủ khác trong Linux. Ngoài ra còn có các cách khác để truyền tệp mà tôi không thể trình bày ở đây, chẳng hạn như bạn cũng có thể sử dụng HTTPS để tải lên và tải xuống tệp
Tôi có thể viết một bài viết khác với danh sách chi tiết các bước sử dụng HTTPS và cuộn tròn để tải lên và tải xuống tệp an toàn. Nếu bạn muốn sao chép tệp giữa Windows và Linux thì bạn luôn có thể sử dụng Samba nhưng vì ở đây chúng tôi đang nhắm mục tiêu chuyển tệp giữa hai máy Linux, tôi sẽ không chia sẻ bất kỳ bước nào liên quan đến cấu hình Samba
Một số bài viết khác về chủ đề liên quan bạn có thể quan tâm
- 2 lệnh sao chép thư mục từ máy chủ cục bộ sang máy chủ từ xa hoặc ngược lại trong Linux với các ví dụ
- Hướng dẫn từng bước để thiết lập SFTP chroot Jail để hạn chế người dùng vào một thư mục cụ thể khi sao chép tệp trong Linux
- Cách truyền tệp an toàn giữa hai máy chủ bằng HTTPS trong Linux
CŨNG ĐỌC. Hệ thống con Windows dành cho Linux [WSL2] trên Windows 10 [Từng bước]
Sử dụng SFTP để sao chép tệp từ máy chủ này sang máy chủ khác
Trong điện toán, Giao thức truyền tệp SSH [cũng là Giao thức truyền tệp an toàn hoặc SFTP] là một giao thức mạng cung cấp quyền truy cập tệp, truyền tệp và quản lý tệp trên bất kỳ luồng dữ liệu đáng tin cậy nào
SFTP rất dễ làm việc với. Bạn nhập
sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
4 cùng với tên của hệ thống từ xa trên dòng lệnh. Bạn được nhắc về tài khoản sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
5; Bạn cũng có thể tự động hóa quá trình truyền tệp bằng SFTP trong tập lệnh shell hoặc bạn cũng có thể sử dụng một lệnh SFTP lót để thực hiện truyền tệp thay vì các phiên tương tác
[deepak@Ban17-inst01-a ~]$ sftp -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no deepak@10.43.138.2 Password:
Khi bạn cung cấp mật khẩu của người dùng
sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
6 trên nút đích, bạn sẽ nhận được trình bao sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
4sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file
Tiếp theo để sao chép tệp từ máy chủ sang máy khách [i. e. tải tệp từ máy chủ lên máy khách]
Ở đây, tôi có tệp '
sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
8' trên máy chủ lưu trữ của mình với tên 'sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
9' mà tôi muốn sao chép vào thư mục làm việc hiện tại của máy kháchQuảng cáo
sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
Để sao chép một thư mục và tất cả nội dung của nó, hãy sử dụng [-r]. Ở đây /home/deepak/mydir có sẵn trên máy chủ của tôi mà tôi đang sao chép vào nút máy khách được kết nối trong thư mục làm việc hiện tại
sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/
Vậy là file đã upload thành công. Bạn có thể xác minh tương tự
sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
0Tiếp theo, sao chép tệp từ nút máy khách sang máy chủ lưu trữ của bạn. Tôi có một tệp 'test_file' trên nút máy khách của mình trong '/home/deepak/test_file'
sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
1Xác thực tương tự trên máy chủ lưu trữ của bạn
sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
2Bạn có thể nhận được nhiều tùy chọn được hỗ trợ hơn từ trang hướng dẫn của
sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
4
CŨNG ĐỌC. Cách thiết lập Android Pentesting Lab [Miễn phí 100%]
Sử dụng RSYNC để sao chép tệp từ máy chủ này sang máy chủ khác
rsync là một tiện ích mà bạn có thể sử dụng để sao chép tệp từ máy chủ này sang máy chủ khác một cách rất dễ dàng và có nhiều tùy chọn có sẵn để cho phép bạn chỉ định rất cụ thể về cách bạn muốn truyền dữ liệu. Một khía cạnh khác làm cho rsync trở nên linh hoạt là có nhiều cách bạn có thể thao tác với thư mục nguồn và đích. Tuy nhiên, bạn thậm chí không phải sử dụng mạng;
Sao chép một tệp trong cùng một máy chủ từ vị trí này sang vị trí khác
sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
4Ở đây chúng tôi đang sử dụng
sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/
1 để sao chép đệ quy, bạn cũng có thể sử dụng [sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/
2] i. e. đối với kho lưu trữ giữ lại càng nhiều siêu dữ liệu càng tốt [trong hầu hết các trường hợp, nó sẽ biến mọi thứ thành một bản sao chính xác]Quảng cáo
LƯU Ý.
Điều này hiệu quả vì bất cứ khi nào
sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/
3 chạy, nó sẽ sao chép những gì khác với lần chạy trước. Các tệp từ bản sao lưu đầu tiên của chúng tôi đã có ở đó nhưng quyền không đúng. Khi chúng tôi chạy lệnh thứ hai, sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/
3 chỉ cần sao chép những gì khác biệt, vì vậy nó đã áp dụng đúng quyền cho các tệp. Nếu bất kỳ tệp mới nào được thêm vào thư mục nguồn kể từ lần cuối chúng tôi chạy lệnh, thì các tệp mới hoặc tệp cập nhật cũng sẽ được sao chép. Để sao chép tập tin giữa hai máy chủ
sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
9
CŨNG ĐỌC. Tùy chọn gắn kết NFS. Tùy chọn xuất NFS. Hướng dẫn cho người mới bắt đầu
Sử dụng SCP để sao chép tệp từ máy chủ này sang máy chủ khác
Một thay thế hữu ích cho rsync là tiện ích Sao chép an toàn [SCP] để sao chép tệp từ máy chủ này sang máy chủ khác, đi kèm với OpenSSH. Nó cho phép bạn nhanh chóng sao chép các tệp từ nút này sang nút khác. Nếu mục tiêu của bạn là gửi một tệp hoặc một số lượng nhỏ tệp đến một máy khác, thì SCP là một công cụ tuyệt vời mà bạn có thể sử dụng để hoàn thành công việc. Để sử dụng SCP, chúng tôi sẽ sử dụng lệnh scp. Vì rất có thể bạn đã cài đặt OpenSSH, nên bạn đã có sẵn lệnh scp
Sử dụng SCP về bản chất rất giống với rsync. Lệnh yêu cầu nguồn, đích và tên tệp. Để chuyển một tệp từ máy cục bộ của bạn sang máy khác, lệnh kết quả sẽ giống như sau
[deepak@Ban17-inst01-a ~]$ sftp -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no deepak@10.43.138.2 Password:0
Nếu bạn không chỉ định thư mục đích trong khi thực hiện scp, thì thư mục chính của người dùng đích sẽ được sử dụng là đích
sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file0
LƯU Ý QUAN TRỌNG.
Đảm bảo rằng bạn luôn bao gồm ít nhất dấu hai chấm khi sao chép tệp, vì nếu không bao gồm dấu hai chấm, cuối cùng bạn sẽ sao chép tệp vào thư mục làm việc hiện tại của mình thay vì đích.
Với các ví dụ về
sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/
5 trước đây của chúng tôi, chúng tôi chỉ sao chép một tệp duy nhất. Nếu chúng tôi muốn chuyển hoặc tải xuống toàn bộ thư mục và nội dung của nó, chúng tôi sẽ cần sử dụng tùy chọn -r, cho phép chúng tôi thực hiện sao chép đệ quysftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file1
CŨNG ĐỌC. Các công cụ quét lỗ hổng Kali khác nhau [Đã giải thích]
Sử dụng NFS để chia sẻ tệp từ máy chủ này sang máy chủ khác
Hệ thống tệp mạng [NFS] là một phương pháp tuyệt vời để chia sẻ tệp giữa các máy chủ Linux hoặc UNIX. Tôi đã viết một bài viết khác với các bước chi tiết để thiết lập NFSv4 và NFSv3 với các ví dụ trong RHEL/CentOS 7 và 8 Linux
Quảng cáo
Trên nút RHEL của tôi, tôi đã cài đặt
sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/
6 và bây giờ sẽ thiết lập các bản xuất của tôi. Để thiết lập NFS, trước tiên hãy tạo một số thư mục mà chúng tôi sẽ chia sẻ với những người dùng khác. Mỗi cổ phần trong NFS được gọi là một sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/
7sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file2
- Trong dòng đầu tiên, tôi đã cấp quyền truy cập chia sẻ vào thế giới cho thư mục
sftp> put -r /home/deepak/mydir . Entering /home/deepak/mydir/
8 - Trong dòng thứ hai, sau khi thư mục được gọi ra trong một dòng, chúng tôi cũng đang đặt mạng nào có thể truy cập chúng [trong trường hợp của chúng tôi là ___99]. Điều này có nghĩa là nếu bạn đang kết nối từ một mạng khác, quyền truy cập của bạn sẽ bị từ chối
- Theo như những gì các tùy chọn này làm, đầu tiên [
sftp> put /home/deepak/pwd.txt . Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt /home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
00] khá dễ hiểu - Một tùy chọn mà bạn sẽ thấy khá thường xuyên trong tự nhiên là
sftp> put /home/deepak/pwd.txt . Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt /home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
01. Thông thường, người dùng root trên một hệ thống sẽ không nhận được bản đồ cho hệ thống kia vì lý do bảo mật. Trong hầu hết các trường hợp, một hệ thống có quyền truy cập root vào hệ thống khác là một ý tưởng tồi. Tùy chọnsftp> put /home/deepak/pwd.txt . Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt /home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
01 vô hiệu hóa điều này và nó cho phép người dùng root ở một đầu được coi là người dùng root ở đầu kia.
LƯU Ý.
Kiểm tra các trang hướng dẫn xuất để biết thêm thông tin về các tùy chọn bổ sung mà bạn có thể chuyển sang phần xuất của mình.
Tiếp theo khởi động lại dịch vụ
sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
03 của bạn trên máy chủsftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file3
Để kiểm tra danh sách cổ phiếu đang xuất
sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file4
Bây giờ hãy thử gắn thư mục
sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/
8 từ phía máy kháchsftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file5
Vậy là chúng ta mount thư mục thành công, Tiếp theo xác thực nội dung
sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file6
Chúng tôi có thể xác thực tương tự trên nút máy khách của mình bằng lệnh bên dưới
sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file7
LƯU Ý.
Đối với các ví dụ của chúng tôi, chúng tôi đã tắt tường lửa và
sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
05. Vì vậy, nếu bạn gặp phải bất kỳ sự cố nào, hãy kiểm tra quy tắc sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
06 và sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
05 của bạn và thêm quy tắc iptables để cho phép kết nối ssh. Sau khi gắn thành công phần chia sẻ trên nút máy khách, bạn có thể sao chép tệp cục bộ vào nút của mình
sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file8
CŨNG ĐỌC. Cách tắt SELinux [có và không khởi động lại]
Sử dụng SSHFS để sao chép tệp từ máy chủ này sang máy chủ khác
SSH Filesystem [SSHFS] là một giải pháp chia sẻ tệp tương tự như NFS và Samba. NFS và Samba là những giải pháp tuyệt vời để chỉ định chia sẻ tệp nhưng những công nghệ này có thể phức tạp hơn mức cần thiết nếu bạn muốn thiết lập một dịch vụ chia sẻ tệp tạm thời để sử dụng trong một khoảng thời gian cụ thể. SSHFS cho phép bạn gắn một thư mục từ xa trên máy cục bộ của mình và xử lý nó giống như bất kỳ thư mục nào khác. Thư mục SSHFS được gắn kết sẽ có sẵn cho vòng đời của kết nối SSH và có thể được sử dụng để sao chép tệp từ máy chủ này sang máy chủ khác
Hạn chế của việc sử dụng SSHFS
- Hiệu suất truyền tệp sẽ không nhanh bằng với ngàm NFS, vì mã hóa cũng cần được xem xét
- Một nhược điểm khác là bạn muốn lưu công việc của mình thường xuyên khi bạn làm việc trên các tệp trong SSHFS mount, vì nếu kết nối SSH bị ngắt vì bất kỳ lý do gì, bạn có thể mất dữ liệu
SSHFS là một phần của kho lưu trữ EPEL mà bạn có thể cài đặt bằng yum
sftp> ls -l -rw-r----- 1 root root 401 Dec 7 11:53 new_key.pub -rw-r----- 1 deepak users 9 Dec 10 14:13 pwd.txt drwxr-xr-x 2 root root 4096 Nov 28 11:38 scripts -rw-r--r-- 1 root root 0 Dec 10 14:07 test_file9
Để SSHFS hoạt động, chúng tôi sẽ cần một thư mục trên cả máy Linux cục bộ của bạn cũng như máy chủ Linux từ xa. SSHFS có thể gắn bất kỳ thư mục nào từ máy chủ từ xa nơi bạn có quyền truy cập SSH
Quảng cáo
Ở đây tôi đang gắn
sftp> put -r /home/deepak/mydir .
Entering /home/deepak/mydir/
8 từ sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
09 trên sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
10sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
0Bây giờ hãy xác thực nội dung của
sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
11 và đảm bảo đường dẫn được gắn đúng cáchsftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
1Bây giờ bạn có thể sao chép cục bộ các tệp từ
sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
11 sang bất kỳ thư mục nào khácsftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
2Khi quá trình sao chép của bạn hoàn tất, hãy ngắt kết nối thư mục tương ứng theo cách thủ công. Có hai cách để làm như vậy. Đầu tiên, chúng ta có thể sử dụng lệnh
sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
13 thay cho lệnh sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
14 [giống như chúng ta thường làm]sftp> put /home/deepak/pwd.txt .
Uploading /home/deepak/pwd.txt to /home/deepak/./pwd.txt
/home/deepak/pwd.txt 100% 9 26.6KB/s 00:00
3
CŨNG ĐỌC. Các công cụ quét lỗ hổng Kali khác nhau [Đã giải thích]
Bạn cũng có thể sử dụng HTTPS để chia sẻ tệp, mặc dù nó sẽ giống như tải lên và tải xuống tệp qua GET và PUT bằng cách sử dụng lệnh curl
Cuối cùng, tôi hy vọng các lệnh từ bài viết này để sao chép tệp từ máy chủ này sang máy chủ khác trong Linux hoặc Unix là hữu ích. Vì vậy, hãy cho tôi biết đề xuất và phản hồi của bạn bằng cách sử dụng phần bình luận