Saya sedang ssh
terhubung dan saya ingin memutar suara setelah perintah selesai (bukan pada server tempat saya terhubung).
Sesuatu:
ssh [email protected]
make && play-sound-local
Saya telah menonaktifkan speaker pc bawaan sehingga echo -e "\a"
tidak berfungsi.
Ada saran?
ssh
audio
linux-mint
ubuntu-9.10
Egon
sumber
sumber
Jawaban:
Anda dapat mengkonfigurasi PulseAudio untuk memungkinkan koneksi jaringan, kemudian menggunakan penerusan port ssh dan
paplay -s
di sisi jarak jauh untuk mengirim audio kembali melalui koneksi ssh. Perhatikan bahwa audio mungkin tertunda atau gagap berdasarkan kesetiaan audio dan kecepatan koneksi.sumber
Siapkan server primitif (misalnya, pada port 1234) yang memutar suara di komputer lokal ketika seseorang terhubung, dan meneruskan port itu ke server jauh.
Di mesin lokal:
kemudian
PS: Anda harus menggunakan
;
alih-alih&&
jika Anda ingin diberitahu bahkan ketika membuat gagal.sumber
(Ini adalah jawaban oleh @xzfc dengan beberapa koreksi.)
Instal
ncat
di mesin klien dan server Anda. Karenanc
dalam distribusi biasa (Debian, Ubuntu) tidak memiliki opsi untuk mengeksekusi perintah (-c
/-e
) yang kita butuhkan.Di mesin lokal Anda, atur server yang akan menjalankan perintah untuk memutar suara ketika koneksi dibuat untuk itu:
Atau gunakan perintah steno yang setara:
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):
Jalankan
make
perintah Anda sebagai berikut di shell SSH:Bagaimana itu bekerja
Setelah
make
perintah (berhasil atau tidak),ncat
perintah 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-alihncat
perintah "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 10009
untuk 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.sumber