Saya mencari cara untuk mengalihkan koneksi ssh dari satu host ke yang lain. Ketika pengguna membuat koneksi ssh ke host foo, saya ingin server mengembalikan beberapa respons yang menyebabkan klien ssh menutup koneksi ssh ke foo dan sebagai gantinya terhubung ke bilah host.
Yang penting, untuk aplikasi yang ada dalam pikiran saya, tidak apa-apa untuk hanya meneruskan koneksi ssh ke bar melalui foo, jadi penerusan port standar tidak mungkin dilakukan. Setelah pengalihan terjadi, klien harus mengirim paket TCP langsung ke bar, bukan ke foo (dan tidak ke bar melalui foo).
Jadi, kira-kira, saya sedang mencari analog SSH ke redirect HTTP (yang menyebabkan klien untuk menggantung koneksi asli dan sebagai gantinya menghubungkan ke host yang dialihkan).
Penting juga untuk aplikasi yang saya ingat ini tidak memerlukan konfigurasi sisi klien.
Jadi mungkinkah melakukan ini?
Jawaban:
Tidak ada ketentuan dalam protokol SSH untuk pengalihan. Baca RFC 4251 , RFC 4252 , dan RFC 4253 untuk perincian negosiasi koneksi.
sumber
Anda dapat mengatur server SSH foo untuk berfungsi sebagai semacam proxy ke bilah server SSH.
Misalnya dengan OpenSSH, Anda harus bisa menggunakan
ForceCommand
SSH ke server bar :Tentu saja akun pada host foo harus dikonfigurasi untuk memungkinkan akses tanpa interaksi ke bar , misalnya dengan memiliki kunci pribadi yang tidak dienkripsi.
Ini akan bekerja secara transparan ke aplikasi klien.
sumber