Konteks
Saya menjalankan Ubuntu Desktop sebagai mesin utama saya, yang akan saya panggil D. Saya ingin terhubung ke server S melalui ssh, tetapi firewall menghalangi saya.
Saya memiliki akses ke server S, melalui jalur yang sangat rumit, melibatkan mesin virtual Windows dan Putty . Ini membuat bekerja dengan server ini sangat menjengkelkan: lingkungan yang sama sekali berbeda, salin / tempel tidak berfungsi, saya tidak dapat menggunakan desktop dengan benar saat sedang terhubung dengannya (Alt-Tab rusak oleh Virtual Machine) dll
Saya telah memverifikasi bahwa saya dapat ssh dari server S ke mesin desktop saya D (kebalikan dari yang saya butuhkan).
Bisakah saya memulai "penerusan porta" atau yang serupa dari server, sehingga saya dapat ssh ke server dari desktop saya?
sumber
D->S
dengan menyalahgunakanS->D
Jawaban:
Anda dapat menggunakan perintah berikut untuk mengatur terowongan SSH dari server jarak jauh ke mesin lokal Anda:
Ketika terowongan diatur, Anda dapat ssh ke server jauh menggunakan perintah berikut:
Harap dicatat bahwa Anda perlu mengatur kunci ssh untuk login otomatis (tidak ada kata sandi). Jika Anda ingin membuat terowongan SSH secara interaktif, Anda dapat menghapus opsi
-f -N
. Untuk info lebih lanjutman ssh
,.sumber
Jika Anda menjalankan versi OpenSSH (7.3+) yang lebih baru, maka Anda dapat menggunakan
ProxyJump
bakes mana saja bersama-sama secara ajaib:Yang mana dalam
~/.ssh/config
penampilan Anda seperti:ProxyJump
mendukung sintaks SSH lengkap, jadi jika Andajim
aktifwindows_server
dan menggunakan port2222
untuk ssh.remote_server
ada di IP192.168.0.110
dariwindows_server
maka Anda dapat menulis:Dan masih berlari
ssh remote_server
untuk sampai ke sana.Jika Anda menjalankan versi SSH yang lebih lama, gunakan ProxyCommand - ini memungkinkan Anda untuk memberitahu SSH untuk terlebih dahulu menjalankan perintah untuk membuat koneksi proxy, sebelum menjalankan perintah SSH yang sebenarnya.
Ini menggunakan opsi SSH -W , yang merupakan singkatan untuk sintaks netcat yang lebih misterius .
Perhatikan bahwa, ketika Anda menjalankan
ssh remote_server
Anda sekarang berada diwindows_machine
Anda perlu memastikan bahwa Anda menggunakan IP dariremove_server
kotak melompat daripada IP dari mesin Anda - ini mungkin sama.Anda kemudian dapat menambahkan arahan ini ke
~/.ssh/config
file Anda :Ini berarti bahwa jika
remote_server
ada mesin yang berbeda seperti yang terlihat dariwindows_machine
maka Anda dapat meletakkannya di konfigurasi dan masih hanya menggunakanssh remote_server
.sumber
Daripada mencoba untuk menghindari hal-hal dan membuat jalur berbelit-belit, tidak bisakah Anda hanya meminta SSH dari desktop Anda ke server untuk diizinkan? Jika Anda memiliki kebutuhan untuk itu dan Anda harus mengakses server saya tidak bisa melihat mengapa Anda akan menolak permintaan tersebut.
sumber