Saya punya dua mesin, Client dan Server.
Klien (yang berada di belakang firewall perusahaan) membuka terowongan SSH terbalik ke Server, yang memiliki alamat IP yang dapat diakses secara publik, menggunakan perintah ini:
ssh -nNT -R0: localhost: 2222 insecure@server.example.com
Dalam OpenSSH 5.3+, yang 0
terjadi tepat setelah -R
cara "memilih port yang tersedia" daripada secara eksplisit memanggilnya. Alasan saya melakukan ini adalah karena saya tidak ingin memilih port yang sudah digunakan. Sebenarnya, sebenarnya ada banyak Klien di luar sana yang perlu mengatur terowongan serupa.
Masalahnya pada saat ini adalah bahwa server tidak tahu Klien mana yang mana. Jika kita ingin terhubung kembali ke salah satu Klien ini (via localhost) lalu bagaimana kita tahu port mana yang merujuk ke klien mana?
Saya sadar bahwa ssh melaporkan nomor port ke baris perintah ketika digunakan dengan cara di atas. Namun, saya juga ingin menggunakan autossh untuk menjaga sesi tetap hidup. autossh menjalankan proses turunannya melalui fork / exec, mungkin, sehingga output dari perintah ssh yang sebenarnya hilang dalam eter.
Selain itu, saya tidak bisa memikirkan cara lain untuk mendapatkan port jarak jauh dari Klien. Jadi, saya bertanya-tanya apakah ada cara untuk menentukan port ini di Server.
Satu ide yang saya miliki adalah entah bagaimana menggunakan / etc / sshrc, yang seharusnya merupakan skrip yang berjalan untuk setiap koneksi. Namun, saya tidak tahu bagaimana orang bisa mendapatkan informasi terkait di sini (mungkin PID dari proses sshd tertentu yang menangani koneksi itu?) Saya ingin beberapa petunjuk.
Terima kasih!