Standart ssh programlarıyla https trafiğini ssh tüneli üzerinden tünellemek mümkün müdür?


12

Bir svn deposunun https trafiğini ssh tüneli üzerinden yeniden yönlendirebilir miyim.

Sorun, örneğin ile dinlemek için sadece bir tünel oluşturursanız https kullanan hizmetlerin çalışmadığıdır:

ssh -L 12345:server.com:443 localhost

Başka bir şey yapmam gerekiyor mu? Amaç https://PROJECT.googlecode.com/svn/ tünelini oluşturmaktır, burada PROJECT proje adıdır.

Yanıtlar:


12

HTTPS bağlantısı SSH bağlantı noktası iletme yoluyla yönlendirilebilir - ancak ana bilgisayar adı eşleşmediği durumlarda SSL / TLS sertifika doğrulaması başarısız olur:

Https: // localhost: 12345 adresine bağlanıyorsunuz, ancak sunucu sertifikası server.com adını içeriyor.

Doğrudan HTTPS bağlantısını iletmek yerine, SSH bağlantısını açtığınız uzak bilgisayarda bir HTTP (s) / SOCKS proxy'si çalıştırırım. Ardından, bu proxy'yi bağlantı noktası yönlendirme yoluyla kullanmak için tünellemek istediğiniz programı ayarlayın. Bu temiz bir çözüm olurdu.

Güncelleme: Görünüşe göre SVN HTTP proxy'lerini kullanabilir ancak SOCKS proxy'lerini kullanamaz. Bunu yapmak istiyorsanız, yerel sisteminizde ek bir "çorap değiştirici" gerekir. Bkz. Serverfault.com: ssh tüneli ile alt sürüm için proxy'yi nasıl ayarlayabilirim?


Aslında bu tür bir yaklaşımı kullanabilir miyim: dltj.org/article/ssh-as-socks-proxy ? Yani googlecode durumunda, bir yerel bilgisayar -> çorap-bilgisayar -> googlecode olurdu. Ve bu "ssh -D" yerel bilgisayarda çalıştırılır: ssh -D 12345 [kullanıcı adı] @ [çorap-bilgisayar]. Şimdi svn'ye yerel bilgisayarda proxy kullanmasını söylemeliyim: 12345. Başka bir şeye ihtiyacım var mı?
Juha

Harika, OpenSSH'nin zaten bir SOCKS proxy'si içerdiğini bilmiyordum. Ayrıca güncellenmiş yanıtıma da bakın.
Robert

6
Uzak ana bilgisayarı 127.0.0.1 ip adresine sahip yerel ana makineler dosyanıza ekleyerek HTTPS sertifikası sorununu çözebilirsiniz. Sonra aslında remotehost: 12345 adresini kullanabilirsiniz, ancak trafik yine de SSH tüneline yönlendirilecektir.
Juha Palomäki

@ JuhaPalomäki bunu bir cevap olarak eklemelisin
elhefe

1

SSH tüneli ile uzak sunucuya erişirken sertifika DNS uyumsuzluğu sorununu gidermek için aşağıdakileri yaptım:

  1. SSH tünelini, yerel bağlantı noktası 443'ün uzak sunucuya trafik ileteceği şekilde macun içinde yapılandırın (L443 : <remote.server.com>:443 )
  2. C:\Windows\System32\drivers\etc\hostsGibi bir girdi eklemek için dosyayı güncelle127.0.0.1 <remote.server.com>
  3. HTTP proxy sunucusu kullanıyorsanız (örneğin, kurumsal bir proxy'den çalışıyorsanız), <remote.server.com>ana bilgisayarı sistem proxy'sinden atlayın
  4. Artık uzak sunucu URL'sine https://<remote.server.com>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.