Saya memiliki 1 server yang berada di belakang NAT dan firewall dan saya memiliki yang lain di lokasi lain yang dapat diakses melalui domain. Server di belakang NAT dan firewall berjalan di lingkungan cloud dan dirancang untuk sekali pakai yaitu jika rusak, kita dapat dengan mudah menerapkannya kembali dengan satu skrip, dalam hal ini, OpenStack menggunakan template panas. Ketika server itu menyala, ia menjalankan perintah berikut untuk membuat terowongan SSH terbalik ke server di luar NAT dan Firewall untuk memungkinkan kita terhubung melalui port 8080 di server itu. Masalah yang saya alami adalah tampaknya jika terowongan OpenSSH rusak (server turun mungkin) terowongan tetap ada, artinya ketika kami menerapkan kembali templat panas untuk meluncurkan server lagi, itu tidak akan lagi dapat terhubung ke port itu kecuali Saya mematikan proses ssh di server di luar NAT terlebih dahulu.

Di sini adalah perintah yang saya gunakan saat ini untuk memulai terowongan terbalik:

sudo ssh -f -N -T -R 9090:localhost:80 user@example.com
0
CNorlander 22 Maret 2019, 02:17

1 menjawab

Jawaban Terbaik

Saya memiliki masalah serupa, dan memperbaikinya dengan cara ini:

Pertama, di server, saya membuat skrip di direktori home bernama .kill_tunel_ssh.sh dengan konten ini:

#this finds the process that is opening the port 9090, finds its PID and kills it
sudo netstat -ltpun | grep 9090 | grep 127 | awk -F ' ' '{print $7}' | awk -F '/' '{print $1}' | xargs kill -9

Kemudian, di klien, saya membuat skrip bernama connect_ssh.sh dengan konten ini:

#this opens a ssh connection, runs the script .kill_tunnel_ssh.sh and exit
ssh user@remote.com "./.kill_tunel_ssh.sh"

#this opens a ssh connection opening the reverse tunnel
ssh user@remote.com -R 9090:localhost:80

Sekarang, saya selalu menggunakan connect_ssh.sh untuk membuka koneksi SSH, daripada menggunakan perintah ssh secara langsung.

Ini membutuhkan user di host jarak jauh untuk memiliki sudo dikonfigurasi tanpa meminta kata sandi saat menjalankan perintah netstat.

Mungkin (mungkin) ada cara yang lebih baik untuk mencapainya, tetapi itu berhasil untuk saya.

0
thomasgustavo 22 Maret 2019, 15:43