Bagaimana saya bisa menggunakan perintah scp untuk menyalin file antara dua server jarak jauh dari PC lokal saya?
server jauh 1: IP = 67.12.21.133 & port = 6774
server jauh 2: IP = 67.129.242.40 & port = 6774
scp -rp -P 6774 [email protected]: /home/denny/testapp1.txt [email protected]:
Ini memberikan kesalahan setelah memberikan kata sandi 67.12.21.133,
ssh: terhubung ke host 67.129.242.40 port 22: Koneksi ditolak
kehilangan koneksi
Jawaban:
Anda dapat menggunakan
~/.ssh/config
untuk menentukan port yang akan digunakan untuk host (dan untuk mengatur banyak hal bagus lainnya; periksa halaman manualman ssh_config
):Saat melakukan ini, Anda harus menggunakan opsi
-3
untuk scp, yang menyalin file melalui mesin lokal Anda. Jika tidak, scp mengeluarkan perintah scp melalui ssh pada host pertama, jadi itu benar-benar berjalandan kemudian ~ / .ssh / config dari host jarak jauh pertama (67.12.21.133) digunakan sebagai pengganti host lokal Anda.
Ketika Anda telah mengatur Anda
~/.ssh/config
dengan benar, ini akan berfungsi:Tentu saja, Anda juga dapat menyalin isi file ~ / .ssh / config ke host jarak jauh pertama Anda, dan kemudian Anda dapat menggunakan scp tanpa
-3
opsi, yang mungkin akan mempercepat transfer.Atau Anda dapat menggunakan trik yang digunakan scp dan menggunakan baris perintah seperti itu:
(Catat kasus yang berbeda dari parameter port untuk ssh dan scp:
ssh -p 6774
vs.scp -P 6774
)PS: Saya mendapat informasi ini dari bugzilla OpenSSH tempat saya memasukkan ini sebagai bug: https://bugzilla.mindrot.org/show_bug.cgi?id=2020
sumber
Saya tidak menemukan solusi yang mudah tetapi Anda dapat mencoba menggunakan sshfs dengan cara berikut:
Cara lain bisa menggunakan ssh (sebenarnya tidak berhasil diuji):
Saat ini saya tidak menemukan cara yang tepat untuk memasukkan dua kata sandi. Ia meminta beberapa kali untuk dua kata sandi tetapi tidak menerima siapa pun. Mungkin jika Anda bertukar kunci ssh antara host yang berfungsi. Karena Anda daripada tidak memerlukan kata sandi.
Saya harap ini membantu? Thomas
sumber
Menurut halaman ini di blog Linux Academy, Anda hanya perlu menggunakan
-P 6774
opsi tepat sebelum jalur jarak jauh kedua:Setiap penggunaan
-P
bendera hanya berlaku untuk lokasi berikutnya pada baris perintah, bukan seluruh perintah. Lokasi mana pun yang tidak memiliki di-P
antara itu dan jalur sebelumnya (atau nama perintah [scp
]) default ke port standar (22).sumber
-P: No such file or directory
.scp
yang direferensikan di sini.Jika Anda perlu mentransfer data dari satu server ke server lain, gunakan perintah SCP. Untuk melakukannya
Cukup tekan Ctrl+ Alt+ Tdi keyboard Anda untuk membuka Terminal. Ketika terbuka, jalankan perintah di bawah ini.
Catatan: Parameter -P dapat digunakan jika Anda ingin menyebutkan nomor port.
sumber