Apakah mungkin untuk mengarahkan lalu lintas https melalui ssh tunnel dengan program ssh standar?

12

Dapatkah saya mengubah rute lalu lintas https (dari repositori svn) melalui ssh-tunnel.

Masalahnya adalah bahwa layanan yang menggunakan https tidak berfungsi jika saya hanya membuat satu terowongan untuk mendengarkan misalnya:

ssh -L 12345:server.com:443 localhost

Apakah saya harus melakukan sesuatu yang lain? Tujuannya adalah untuk tunnel https://PROJECT.googlecode.com/svn/ di mana PROJECT adalah nama proyek.

Juha
sumber

Jawaban:

12

Koneksi HTTPS dapat dialihkan melalui penerusan port SSH - namun validasi sertifikat SSL / TLS akan gagal dalam kasus-kasus seperti itu karena nama host tidak cocok:

Anda terhubung ke https: // localhost: 12345 tetapi sertifikat server berisi nama server.com.

Alih-alih langsung meneruskan koneksi HTTPS saya akan menjalankan HTTP (s) / SOCKS proxy di komputer jauh Anda membuka koneksi SSH. Kemudian atur program yang ingin Anda tunnel menggunakan proxy ini melalui penerusan porta. Ini akan menjadi solusi bersih.

Pembaruan: Sepertinya SVN dapat menggunakan proksi HTTP tetapi tidak proksi SOCKS. Jika ingin melakukannya, Anda memerlukan "socksifier" tambahan pada sistem lokal Anda. Lihat Serverfault.com: Bagaimana saya bisa mengatur proxy untuk subversi dengan ssh tunnel?

Robert
sumber
Dapatkah saya benar-benar menggunakan pendekatan semacam ini: dltj.org/article/ssh-as-socks-proxy ? Jadi dalam kasus googlecode, saya akan memiliki komputer lokal -> socks-computer -> googlecode. Dan "ssh -D" ini akan dijalankan di komputer lokal: ssh -D 12345 [nama pengguna] @ [komputer kaus kaki]. Sekarang saya harus memberitahu svn untuk menggunakan proxy di komputer-lokal: 12345. Apakah saya memerlukan sesuatu yang lain?
Juha
Keren, saya tidak tahu bahwa OpenSSH sudah menyertakan proxy SOCKS. Lihat juga jawaban saya yang diperbarui.
Robert
6
Anda dapat mengatasi masalah sertifikat HTTPS dengan menambahkan host jarak jauh ke file host lokal Anda dengan alamat ip 127.0.0.1. Maka Anda benar-benar dapat menggunakan alamat remotehost: 12345 tetapi lalu lintas masih akan diarahkan ke terowongan SSH.
Juha Palomäki
@ JuhaPalomäki Anda harus menambahkan ini sebagai jawaban
elhefe
1

Untuk dapat mengatasi masalah ketidakcocokan DNS sertifikat saat mengakses server jauh dengan terowongan SSH, saya melakukan hal berikut:

  1. Konfigurasikan terowongan SSH di dempul sehingga port lokal 443 meneruskan lalu lintas ke server jarak jauh (L443 : <remote.server.com>:443 )
  2. Perbarui C:\Windows\System32\drivers\etc\hostsfile untuk menambahkan entri seperti127.0.0.1 <remote.server.com>
  3. Jika Anda menggunakan server proxy HTTP (misalnya jika Anda bekerja dari proxy perusahaan), maka bypass <remote.server.com>host dari proxy sistem
  4. Sekarang Anda dapat mengakses URL server jarak jauh dengan https://<remote.server.com>
KunalP
sumber