Home / Lập Trình / Di chuyển file giữa các hệ thống Linux với SCP

Di chuyển file giữa các hệ thống Linux với SCP

Quản Trị Mạng – Trong bài viết trước, chúng tôi đã giới thiệu tới các bạn hai cách chia sẻ file giữa Windows 8 trong VirtualBox tới Host OS là một phiên bản của Linux. Hôm nay chúng tôi sẽ hướng dẫn các bạn cách di chuyển tập tin giữa các máy chủ Linux bằng cách sử dụng lệnh scp (secure copy).

Di chuyển file giữa các hệ thống Linux với SCP

scp là lệnh dùng để sao chép tập tin giữa các host trên mạng. Nó sử dụng ssh để truyền dữ liệu, cung cấp bảo mật tương tự ssh.

Để minh họa cho bài viết này, chúng tôi sẽ tiến hành di chuyển các file từ ổ đĩa cứng của mình tới một máy ảo đang chạy trên VirtualBox. Trên cả hai hệ thống đều cài đặt Linux Mint 11.

Một số lưu ý

Bằng cách sử dụng scp bạn không chỉ có thể di chuyển các file tới máy ảo như trong hướng dẫn này, mà bạn còn có thể di chuyển chúng tới bất kỳ máy chủ nào trên thế giới. Điều quan trọng là bạn phải biết địa chỉ IP của máy server đó và mật khẩu truy cập cần thiết.

Cấu hình hệ thống máy ảo

Để có thể gửi các tập tin tới máy ảo, trước tiên bạn cần một số cấu hình cụ thể cho nó. Mở VirtualBox, chọn máy ảo cần thiết và mở Settings Network. Chọn tab Adapter Bridged Adapter từ Attached to: của menu xổ xuống. Sau đó chạy máy ảo của bạn. Khi máy ảo đã hoạt động, mở terminal và nhập vào lệnh sau;

sudo apt-get install openssh-server

ifconfig

ifconfig sẽ hiển thị một khối block, có tiêu đề ech0:

ctest@ctest-System-Product-Name ~ $ ifconfig
eth0      Link encap:Ethernet  HWaddr f4:6d:04:94:8f:17
          inet addr:192.168.0.11  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::f66d:4ff:fe94:8f17/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:234392 errors:0 dropped:0 overruns:0 frame:0
          TX packets:128835 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:332109021 (332.1 MB)  TX bytes:11758082 (11.7 MB)
          Interrupt:43 Base address:0x6000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:39 errors:0 dropped:0 overruns:0 frame:0
          TX packets:39 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2424 (2.4 KB)  TX bytes:2424 (2.4 KB)

ctest@ctest-System-Product-Name ~ $

Địa chỉ IP hiển thị tại dòng inet addr: là một trong những máy ảo thuộc hệ thống mạng của bạn. Từ IP này bạn có thể truy cập vào chúng. Trở lại với hệ thống người gửi sau khi đã xác định được địa chỉ IP người nhận, nếu bạn đã sẵn sàng các tệp tin để gửi và thư mục để lưu trữ ở hai hệ thống, hãy bắt đầu quá trình bằng lệnh dưới đây (thay thế các mục trong dấu ngoặc vuông [] với dữ liệu thực tế).

scp [path of file to send] root@[receiver’s IP]:[target directory]

Ví dụ chúng tôi muốn gửi file FunnyVideo.mp4 trong thư mục /home/ctest/Videos tới thư mục/home/virtualguy/Videos của hệ thống có địa chỉ IP 192.168.0.11, chạy lệnh như sau:

scp /home/ctest/Videos/FunnyVideo.mp4 root@192.168.0.11:/home/virtualguy/Videos

Sau đó có thể bạn sẽ nhận được thông báo như sau:

ctest@ctest-System-Product-Name ~ $ scp /home/ctest/Videos/FunnyVideo.mp4 root@192.168.0.11:/home/virtualguy/Videos
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
4e:c0:50:9a:cf:b6:bc:45:ed:9b:54:97:d8:11:21:a8.
Please contact your system administrator.
Add correct host key in /home/ctest/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/ctest/.ssh/known_hosts:4
  remove with: ssh-keygen -f "/home/ctest/.ssh/known_hosts" -R 192.168.0.11
ECDSA host key for 192.168.0.11 has changed and you have requested strict checking.
Host key verification failed.
lost connection
ctest@ctest-System-Product-Name ~ $

Trong nhiều trường hợp địa chỉ IP bị trùng sẽ gây ra lỗi này. Để giải quyết, bạn chạy lệnh sau để loại bỏ các key vi phạm.

ssh-keygen -f “/home/ctest/.ssh/known_hosts” -R 192.168.0.11

Chú ý thay thế đường dẫn và địa chỉ IP phù hợp với trường hợp của mình. Bạn cũng có thể loại bỏ các key này bằng cách mở tập tin known_hosts (ở quyền root) với một trình soạn thảo văn bản và loại bỏ key vi phạm.

Nếu không có vấn đề nào xuất hiện, bạn sẽ được hỏi có muốn tiếp tục quá trình, chọn yes và nhấn Enter để xác nhận. Khi được yêu cầu nhập vào mật khẩu root, nhập và nhấn Enter lần nữa. Sau đó các tập tin sẽ được sao chép và truy cập trên thư mục người nhận. Mặc định bạn không có quyền để ghi hoặc thực thi nó, tuy nhiên nếu muốn bạn có thể sử dụng lệnh dưới đây để có toàn quyền:

sudo chmod 777 /home/virtualguy/Videos/FunnyVideo.mp4

Lưu ý thay thế giá trị tại đường dẫn sao cho phù hợp với tập tin của mình.

Print Friendly

About dongpolice

Check Also

Tao-bo-cai-dat-windows-to-usb

Tạo bộ cài đặt Windows từ USB dễ dàng – WinToUSB 3.4 Enterprise Full Key

Tạo bộ cài đặt Windows từ USB dễ dàng – WinToUSB 3.4 Enterprise Full Key WinToUSB …