Saya sering dalam situasi berikut:
Saya memiliki dua mesin, A dan B, yang ada di LAN, dan memiliki alamat IP non-publik. Mesin C berada di LAN yang sama dengan B, tetapi terlihat secara publik. Saya ingin menyalin file dari B ke A, jadi saya harus:
- ssh ke C
- ssh dari C ke B
- file scp dari B ke C
- file scp dari C ke A
Mengingat bahwa ssl dapat melakukan hal-hal luar biasa dengan menampilkan tunneling sepanjang jalan kembali dari B ke A melalui C secara transparan, sepertinya itu mungkin untuk melakukan hal yang sama dengan file.
Apakah ada cara untuk menggunakan ssh / scp standar untuk menyalin dari B ke A, tanpa harus membuat salinan sementara di C?
Jawaban:
Anda ingin mengatur penerusan porta. Ketika Anda SSH dari mesin A ke mesin B tambahkan sebuah terowongan, yaitu tambahkan -L 1234: A: 22 saat melakukan tunneling ke B. Kemudian SSH ke mesin C dan scp file ke B pada port 1234 (yaitu tambahkan -P 1234 ke scp) . Ini sebenarnya akan merutekan ke port 22 pada mesin A yang merupakan port ssh dan karenanya akan langsung ditransfer.
Saya tidak memiliki tiga mesin untuk mencoba ini sekarang, tetapi saya pikir ini harus bekerja.
sumber
Jika Anda dapat ssh dari C ke B dan scp ke A dari C, maka saya pikir Anda harus dapat menggunakan scp langsung dari C.
(Menggunakan aa.aa.aa.aa sebagai alamat IP A dan bb.bb.bb.bb sebagai alamat IP B)
Di baris perintah pada C:
scp bb.bb.bb.bb:/path/to/file aa.aa.aa.aa:/path/to/destination
sumber