Saya ingin merutekan port untuk VNC kembali ke rumah saya di sini. Saya harus melompati satu host untuk kemudian melompat ke mesin kerja saya yang sebenarnya.
sittinghere
akan menjadi mesin rumah lokal sayahopper
akan dengan hop menengah yang perlu saya buatoverthere
akan menjadi mesin kerja jarak jauh
Saya bisa melakukan ini untuk SSH ke mesin kerja saya:
ssh -t hopper "ssh -t overthere"
Saya ingin menggunakan penerusan port untuk meneruskan port remote 5900 overthere
ke port lokal 5900 aktif sittinghere
. Namun, saya lebih suka untuk dapat melakukannya tanpa mengikat ke port secara terbuka hopper
karena siapa pun di mesin itu akan dapat melampirkan ke koneksi VNC saya.
Apakah ada cara bagi saya untuk meneruskan port itu ke mesin lokal saya dengan aman tanpa ada yang bisa mengaksesnya hopper
?
ssh
port-forwarding
Naftuli Kay
sumber
sumber
Jawaban:
Menggunakan kemampuan asli SSH untuk meneruskan porta. Dari
sittinghere
eksekusi:Arahkan klien VNC Anda ke
localhost:5900
dan lalu lintas akan diteruskan keoverthere:5900
melalui koneksi SSH yang dibuat padahopper
sumber
hopper
, dan kemudianhopper
meneruskan semua lalu lintas keoverthere:5900
. Jikaoverthere:5900
mendengarkan pada0.0.0.0
atau antarmuka yang diberikan, maka itu akan berfungsi, tetapi tidak jika itu mendengarkan127.0.0.1
.Saya akhirnya menggunakan beberapa
~/.ssh/config
peretasan SSH untuk mewujudkan hal ini:Apa yang dilakukan adalah ketika saya mencoba untuk menyambung
ssh overthere
darisittinghere
, ia terhubung kehopper
dan kemudian memproksi koneksi SSH ke port 22 aktifoverthere
(yaitu: SSH aktifoverthere
).Ini memiliki beberapa efek samping yang luar biasa:
Semuanya berfungsi luar biasa dan sejauh yang saya tahu, 5900 tidak dibuka
hopper
, hanya diteruskan langsung darioverthere
kesittinghere
.sumber
apt-get install netcat-traditional -y
). Maka Anda harus secara eksplisit menentukannc
jenis dalam file konfigurasi (dengan menggantinc
dengannc.traditional
).Anda dapat meneruskan port dari
sittinghere
keoverthere
port SSH melaluihopper
. Kemudian Anda dapat menggunakan port itu untuk mencapaioverthere
langsung darisittinghere
. Dalam sesi SSH kedua ini, Anda dapat meneruskan VNC atau port apa pun yang Anda suka sambilhopper
hanya melihat sesi SSH terenkripsi.Sesi SSH pertama:
Sekarang beri tahu klien SSH bagaimana hal itu dapat dicapai
overthere
dengan menambahkan konfigurasi ini~/.ssh/config
padasittinghere
Sesi SSH kedua:
Atau hanya sesi SSH interaktif reguler tanpa terowongan port VNC:
Jika Anda tidak ingin repot menambahkan baris ke
~/.ssh/config
Anda masih bisa mengatakannya bagaimana menghubungkanoverthere
dari baris perintah:... tetapi tanpa
HostKeyAlias
SSH tidak akan memverifikasioverthere
sidik jari kunci dengan benar.Semua baris perintah harus dijalankan
sittinghere
.Kebetulan, saya pikir Anda mungkin tidak perlu menggunakan
ssh
's-t
pilihan.sumber
Pertama hubungkan hopper sambil membuat terowongan antara PC pekerja dan rumah.
kemudian buat ssh ro ke sana dengan vnc tunnel
Sekarang Anda dapat terhubung dengan vnc. By the way mengubah konfigurasi vnc untuk mendengarkan localhost
sumber
Jika Anda menggunakan klien VNC
vncviewer
dari baris perintah, Anda dapat menggunakan-via
sakelar untuk memberitahukannya ke tunneluser@host
sebelum menghubungkan ke server VNC host lain.Contoh
Anda juga dapat menggunakan
vinagre
untuk terhubung melalui terowongan SSH seperti itu melalui GUI. Untuk melakukannya atur koneksi Anda seperti ini melalui dialog koneksi divinagre
:Yang akan menghasilkan koneksi Anda muncul, terowongan melalui host SSH tunnel.
Referensi
sumber
Perintah berikut juga harus bekerja dengan sempurna
Itu diuji dengan parameter tambahan untuk menghubungkan server PostgreSQL aktif
postgres-server
di port yang disesuaikan (-p
switch) dan juga dengan menggunakan nama pengguna yang disesuaikan.Seperti yang Anda lihat solusi itu sederhana dan tidak memerlukan perubahan konfigurasi ssh atau langkah perantara apa pun.
sumber