(Ini adalah jawaban oleh @xzfc dengan beberapa koreksi.)
Instal ncatdi mesin klien dan server Anda. Karena ncdalam distribusi biasa (Debian, Ubuntu) tidak memiliki opsi untuk mengeksekusi perintah ( -c/ -e) yang kita butuhkan.
apt install nmap
Di mesin lokal Anda, atur server yang akan menjalankan perintah untuk memutar suara ketika koneksi dibuat untuk itu:
ncat --sh-exec "paplay /usr/share/sounds/freedesktop/stereo/complete.oga" \
--keep-open --listen localhost 10009
Atau gunakan perintah steno yang setara:
ncat -klc "paplay file.oga" localhost 10009
SSH ke host jarak jauh Anda sedemikian rupa sehingga terowongan terbalik dibuat dari port 10008 dari host jarak jauh ke port 10009 pada mesin lokal Anda (tempat server Anda mendengarkan):
ssh -R 10008:localhost:10009 me@somewhere.com
Jalankan makeperintah Anda sebagai berikut di shell SSH:
make; ncat --idle-timeout 1s localhost 10008
Bagaimana itu bekerja
Setelah makeperintah (berhasil atau tidak), ncatperintah membuat koneksi ke port 10008 pada host jarak jauh, yang SSH meneruskan ke port 10009 pada mesin lokal Anda, di mana server Anda mendengarkan dan akan memainkan suara saat koneksi dibuat. Setelah koneksi terjalin, kita tidak lagi membutuhkannya, jadi setelah itu ditutup --idle-timeout 1s. Ini akan menampilkan prompt shell lagi alih-alih ncatperintah "menggantung" , membuatnya jelas bahwa rantai perintah SSH Anda benar-benar selesai.
SSH reverse tunneling membuat pekerjaan ini terlepas dari semua router / firewall / NAT antara mesin lokal Anda dan mesin jarak jauh. (Kalau tidak, Anda harus mengatur aturan port forwarding di router Anda, atau memiliki mesin lokal yang terpapar ke Internet.)
Keamanan
Kami melakukannya ncat -l localhost 10009untuk server, yang berarti server hanya mendengarkan antarmuka jaringan dengan alamat IP host lokal. Antarmuka loop lokal ini hanya memungkinkan koneksi dari mesin Anda sendiri (termasuk, dalam hal ini, mereka yang melakukan tunnel terbalik melalui SSH). Jadi, bahkan jika Anda tidak berada di belakang firewall, port 10009 Anda tidak terpapar pada siapa pun di Internet.