Scp dari satu server ke server lain?

34

Saya mencoba untuk menyalin file dari satu server langsung ke yang lain, melewati komputer lokal saya.

aku melakukannya

scp -r [email protected]:~/data/* [email protected]:~/data/
Password: 
Host key verification failed.
lost connection

Apakah ini mungkin? Bagaimana saya memperbaikinya?

Sibbs Gambling
sumber
Dapatkah Anda memposting output dari perintah-scp -r -v [email protected] berikut: ~ / data / * [email protected]: ~ / data /
pragmatic

Jawaban:

55

Sesuatu yang saya gunakan cukup sering ketika tidak ada koneksi yang mungkin antara kedua server

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

sumber

-3 Salinan antara dua host jarak jauh ditransfer melalui host lokal. Tanpa opsi ini, data disalin secara langsung antara dua host jarak jauh. Perhatikan bahwa opsi ini menonaktifkan pengukur kemajuan.

Dengan asumsi Anda memiliki koneksi yang baik untuk keduanya, itu tidak terlalu lambat.

exussum
sumber
Selain itu jika Anda perlu menggunakan port khusus di kedua server: superuser.com/questions/686394/…
Pit
Jangan lupa untuk menambahkan -rbendera jika Anda menyalin direktori.
Taylor Edmiston
16

Ya ini mungkin, tetapi hanya jika server1.comdapat menjangkau server2.comdengan menggunakan nama itu. Jika tidak, Anda mungkin akan mendapatkan pesan:ssh: connect to host server2 port 22: Connection refused

The manhalaman untuk scpjelas menyatakan bahwa salinan antara host di jaringan dan yang:

Salinan antara dua host jarak jauh juga diizinkan.

Yang harus Anda lakukan (sekali) adalah sshke [email protected]dan dari sana sshke sana [email protected]. Jawab pertanyaan keaslian yang akan Anda dapatkan dengan ya, untuk menyingkirkan pesan verifikasi kunci host saat melakukanscp

Anda mungkin harus mengaktifkan agen penerusan dengan:

scp -o "ForwardAgent yes" -r [email protected]:~/data/* [email protected]:~/data/

Tapi pastikan Anda menyadari bahayanya ( man ssh_config)

Anthon
sumber
Aku hanya sshed dari server1.comke server2.com, dan saya memang menjawab pertanyaan itu dan berhasil. Kemudian, saya kembali ke komputer lokal saya, melakukannya lagi, dan mendapatkan server2.comprompt kata sandi. Tetapi gagal di sana dengan:Permission denied (publickey,keyboard-interactive). lost connection
Sibbs Gambling
1
@SibbsGambling Saya pikir ini bergantung pada penerusan kunci pribadi Anda. Bisakah Anda masuk ke kedua server tanpa memberikan kata sandi? Bisakah Anda login dari server1ke server2tanpa memberikan kata sandi. Anda mungkin harus mengatur "ForwardAgent ya".
Anthon
1

Pertama, Anda perlu memeriksa apakah Anda dapat ssh ke server2 tanpa kesalahan, jika Anda mendapatkan kesalahan yang sama, maka silakan buka file ~/.ssh/known_hostsdan cari kunci server2 dan hapus.

Kemudian periksa apakah Anda dapat melakukan ping server dengan nama host

Jika tidak maka silakan edit kedua file host server seperti yang disebutkan di bawah ini

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

Setelah Anda selesai dengan cd ini ke lokasi file yang ingin Anda salin ke server2

yang scp file_name user@server2:/path_to_the_directory ---> Anda dapat menggunakan IP bukan nama host Anda dapat menyebutkan -Runtuk menyalin sebuah direktori.

Anjing kampung
sumber
0

Periksa apakah ~/.ssh/known_hostsada catatan yang tepat untuk kedua server

Periksa juga apakah server1 memiliki ~/.ssh/known_hostscatatan yang tepat untuk server2

Romeo Ninov
sumber
-2

Anda dapat menggunakan perintah di bawah ini untuk menyalin file dari satu server ke yang lain:

scp source_user@source_remote_host:/usr/bin/mysql_backup.sh \
         target_user@target_remote_host:/var/tmp/
karthik m
sumber