Saya melakukan SSH hop ganda untuk mendapatkan pertama ke server yang memiliki alamat IP publik dan membuka port SSH, kemudian SSHing ke komputer berikutnya, sambil menghubungkan port VNC lokal saya ke port sistem jarak jauh. DALAM diagram:
[Sistem Lokal Saya] --- Terowongan SSH (port 5900 forward) -> [Server] - Terowongan SSH (port 5900 forward) -> [Sistem remote]
Saya telah membuat perintah string tunggal untuk melakukan semua ini, tetapi ada tangkapan. x11VNC tampaknya mogok dalam jumlah banyak. Seperti secara harfiah, saya mungkin menyelesaikan 10 menit pekerjaan sebelum sistem saya macet lagi dan saya harus me-restart x11vnc. Tapi ini bukan tentang pertanyaan ini.
Perintah yang saya gunakan adalah sebagai berikut:
ssh -L 5900:[REMOTE SYSTEM IP]:5900 [email protected] 'ssh [REMOTE SYSTEM IP] 'pkill x11vnc; x11vnc --ncache 10''
Sekarang saya telah memasukkan perintah PKILL di sini sehingga akan menghapus instance x11vnc beku yang masih berjalan sehingga saya dapat membebaskan port 5900 (dan tidak memiliki proses zombie menembus sistem saya): Namun ini tidak berhasil. Tidak peduli apa yang saya lakukan, jika ini double hop, ini hanya mengembalikan x11vnc, perintah tidak ditemukan
CATATAN : Jika saya menghapus pkill, string perintah ini berfungsi dengan baik. Tapi aku harus membunuh zombie
Jika dari server namun saya mencoba menjalankan perintah:
ssh [REMOTE SYSTEM IP] 'pkill x11vnc; x11vnc --ncache 10'
ini bekerja dengan baik! Adakah yang tahu mengapa ini tidak akan berfungsi ketika melakukan koneksi ssh "double hop"?
Saya akhirnya bisa menyelesaikan masalah. Ternyata saya perlu menggunakan `bukan 'untuk batin' '. (backtick (aksen kubur) alih-alih kutipan tunggal)
Jadi perintah terakhir yang berfungsi adalah:
sumber