Scp từ máy chủ này sang máy chủ khác?


34

Tôi đang cố gắng sao chép các tập tin từ máy chủ này sang máy chủ khác, bỏ qua máy tính cục bộ của tôi.

tôi đã làm

scp -r usrname@server1.com:~/data/* usrname@server2.com:~/data/
Password: 
Host key verification failed.
lost connection

Điều này thậm chí có thể? Làm thế nào tôi có thể sửa chữa nó?


Bạn có thể gửi kết quả của sau Command- scp -r -v usrname@server1.com: ~ / data / * usrname@server2.com: ~ / data /
thực dụng

Câu trả lời:


55

Một cái gì đó tôi sử dụng khá thường xuyên khi không có kết nối giữa hai máy chủ

scp -3 user@server1:/path/to/file user@server2:/path/to/file

nguồn

-3 Bản sao giữa hai máy chủ từ xa được chuyển qua máy chủ cục bộ. Không có tùy chọn này, dữ liệu được sao chép trực tiếp giữa hai máy chủ từ xa. Lưu ý rằng tùy chọn này vô hiệu hóa đồng hồ đo tiến độ.

Giả sử youu có kết nối tốt với cả hai, nó không quá chậm.


Ngoài ra, nếu bạn cần sử dụng các cổng đặc biệt trên cả hai máy chủ: superuser.com/questions/686394/ trên
Hố

Đừng quên thêm -rcờ nếu bạn đang sao chép một thư mục.
Taylor Edmiston

16

Có, điều này là có thể, nhưng chỉ khi server1.comcó thể đạt được server2.combằng cách sử dụng tên đó. Nếu không bạn có thể sẽ nhận được một tin nhắn:ssh: connect to host server2 port 22: Connection refused

Các mantrang cho scprõ ràng rằng nó sao chép giữa các host trên một mạng và rằng:

Bản sao giữa hai máy chủ từ xa cũng được cho phép.

Bạn nên làm gì (một lần) là sshđể username@server1.comvà từ đó sshđến username@server2.com. Trả lời câu hỏi xác thực bạn sẽ nhận được bằng có, để thoát khỏi thông báo xác minh khóa máy chủ trong khi thực hiệnscp

Bạn có thể phải kích hoạt tác nhân chuyển tiếp với:

scp -o "ForwardAgent yes" -r usrname@server1.com:~/data/* usrname@server2.com:~/data/

Nhưng hãy chắc chắn rằng bạn nhận ra sự nguy hiểm trong đó ( man ssh_config)


Tôi chỉ sshed từ server1.comđến server2.com, và tôi thực sự đã trả lời câu hỏi và đã thành công. Sau đó, tôi quay trở lại máy tính cục bộ của mình, làm lại và nhận được server2.comlời nhắc mật khẩu. Nhưng nó thất bại ở đó với:Permission denied (publickey,keyboard-interactive). lost connection
Sibbs Đánh bạc 12/2/2015

1
@SibbsGambled Tôi nghĩ rằng điều này phụ thuộc vào việc chuyển tiếp khóa riêng của bạn. Bạn có thể đăng nhập vào cả hai máy chủ mà không cần cung cấp mật khẩu không? Bạn có thể đăng nhập từ server1để server2mà không cung cấp mật khẩu. Bạn có thể phải đặt "ForwardAgent yes".
Anthon

1

Trước tiên, bạn cần kiểm tra xem bạn có thể ssh đến server2 mà không gặp lỗi nào không, nếu bạn gặp lỗi tương tự, thì vui lòng mở tệp ~/.ssh/known_hostsvà tìm kiếm khóa server2 và xóa nó.

Sau đó kiểm tra xem bạn có thể ping máy chủ bằng tên máy chủ không

Nếu không thì hãy chỉnh sửa cả tập tin máy chủ như được đề cập dưới đây

 #vi /etc/hosts  
 server1 192.186.x.x  
 server2 192.186.x.xx   
 :wq   ---> to save  

Sau khi bạn hoàn thành với cd này đến vị trí của tệp mà bạn muốn sao chép vào máy chủ2

những scp file_name user@server2:/path_to_the_directory ---> bạn có thể sử dụng địa chỉ IP thay cho tên máy bạn có thể đề cập đến -Rđể sao chép một thư mục.


0

Kiểm tra nếu ~/.ssh/known_hostscó hồ sơ thích hợp cho cả hai máy chủ

Kiểm tra thêm nếu server1 có ~/.ssh/known_hostsbản ghi thích hợp cho server2


-2

Bạn có thể sử dụng lệnh dưới đây để sao chép tệp từ máy chủ này sang máy chủ khác:

scp source_user@source_remote_host:/usr/bin/mysql_backup.sh \
         target_user@target_remote_host:/var/tmp/
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.