Saya punya tiga mesin:
- Saya memiliki akses fisik ke
localhost
- Saya ingin ssh ke
host1
. Namun, itu berada di belakang NAT tingkat-pembawa, jadi saya tidak dapat ssh langsung darinyalocalhost
relayhost
sudah diatur untuk membantu saya terhubung darilocalhost
untukhost1
Saya ingin ssh dari masing-masing localhost
dan host1
untuk relayhost
, lalu miliki relayhost
menyampaikan koneksi ssh saya dari localhost
untuk host1
.
Jawaban ini menyarankan agar saya dapat membuat terowongan relayhost
menggunakan ssh -L
jika saya tahu alamat URI atau IP host1
. Namun, saya tidak tahu itu karena carrier grade NAT. Jadi saya bisa membayangkan proses untuk menyampaikannya seperti ini:
- Di
host1
,ssh user@relayhost
relayhost
sedang mengamati koneksi ini dan ketika melihatnya tertulis "Aku akan membuat terowongan dari port 9999 ke koneksi ini"- Di
localhost
,ssh 9999:relayhost
Apakah ini cara yang tepat untuk melakukan ini? Bagaimana saya melakukan langkah 2?
ssh
ssh-tunnel
ericksonla
sumber
sumber
localhost
danhost1
ada di belakang NAT, dia tidak bisa mengelak ...machineB$SSH -R 1234:127.0.0.1:1000 hostxIP
Kemudianhost1$SSH hostx:1234
Dan itu harus terhubung secara tidak langsung, ke machineB pada port 1000.Jawaban:
Anda tidak memerlukan pemicu khusus
relayhost
. Yang perlu Anda lakukan adalah menggunakan penerusan port jarak jauhssh -R
bukannya penerusan port lokal denganssh -L
.Sekarang jika saya memahaminya dengan benar - masalah Anda adalah keduanya
localhost
maupunhost1
memiliki IP yang dapat diakses publik - keduanya berada di belakang NAT. Kalau tidak, akan lebih mudah membuat terowongan darihost1
untuklocalhost
denganssh -R
dan kemudian jalankan koneksi SSH kedua di dalam terowongan ini.Jika kita harus menggunakan relay, itu bisa dilakukan dalam langkah-langkah berikut. Untuk kejelasan, mari ganti nama Anda
localhost
mesin untukmyhost
sekarang.Jalankan ini
host1
:Ini akan membuka porta
12345
direlayhost
dan ketika ada yang terhubung, data akan diteruskan ke port SSH22
dihost1
.Sekarang Anda dapat terhubung ke port
12345
direlayhost
darimyhost
.Seandainya Anda memiliki firewall restriktif aktif
relayhost
yang melarang akses eksternal ke pelabuhan12345
, Anda dapat menggunakan penerusan port lokal untuk membuka port secara lokalmyhost
:Dan kemudian terhubung ke
host1
darimyhost
:Namun jangan berharap untuk membangun solusi jaringan permanen pada penerusan port jarak jauh (lihat: https://serverfault.com/q/595323 untuk kemungkinan masalah di masa depan). Anda harus mempertimbangkan menggunakan VPN dengan server aktif
relayhost
untuk pengaturan jangka panjang sebagai gantinya.sumber