ssh redirect tanpa menggunakan penerusan port

3

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?

Alex Flint
sumber
3
Tidak ada hal seperti itu. Apa masalah yang Anda coba selesaikan?
Michael Hampton
Saya memiliki server SSH yang berjalan pada beberapa port khusus (bukan 22) dan saya ingin membuat fasad yang akan memungkinkan seseorang untuk "ssh foo.somehost.com" dan memilikinya memutuskan untuk "ssh -p XXXX www.somehost.com"
Alex Flint

Jawaban:

4

Tidak ada ketentuan dalam protokol SSH untuk pengalihan. Baca RFC 4251 , RFC 4252 , dan RFC 4253 untuk perincian negosiasi koneksi.

200_sukses
sumber
0

Anda dapat mengatur server SSH foo untuk berfungsi sebagai semacam proxy ke bilah server SSH.

Misalnya dengan OpenSSH, Anda harus bisa menggunakan ForceCommandSSH ke server bar :

ForceCommand ssh bar_host

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.

Martin Prikryl
sumber