我可以通过ssh-tunnel重新路由(svn存储库的)https通信吗?
问题是,如果我仅创建一个隧道进行监听,则使用https的服务将无法正常工作:
ssh -L 12345:server.com:443 localhost
我还需要做其他事情吗?目的是建立https://PROJECT.googlecode.com/svn/隧道,其中PROJECT是项目名称。
我可以通过ssh-tunnel重新路由(svn存储库的)https通信吗?
问题是,如果我仅创建一个隧道进行监听,则使用https的服务将无法正常工作:
ssh -L 12345:server.com:443 localhost
我还需要做其他事情吗?目的是建立https://PROJECT.googlecode.com/svn/隧道,其中PROJECT是项目名称。
Answers:
可以通过SSH端口转发来重定向HTTPS连接-但是,在主机名不匹配的情况下,SSL / TLS证书验证将失败:
您正在连接到https:// localhost:12345,但是服务器证书包含名称server.com。
与其直接转发HTTPS连接,不如我在要打开SSH连接的远程计算机上运行HTTP / SOCKS代理。然后设置要通过端口转发使用此代理的隧道程序。这将是一个干净的解决方案。
更新:似乎SVN可以使用HTTP代理,但不能使用SOCKS代理。如果要这样做,则需要在本地系统上附加一个“ socksifier”。请参阅Serverfault.com:如何使用ssh隧道设置用于颠覆的代理?
为了能够解决通过SSH隧道访问远程服务器时证书DNS不匹配的问题,我做了以下工作:
(L443 : <remote.server.com>:443 )
C:\Windows\System32\drivers\etc\hosts
文件以添加条目,例如127.0.0.1 <remote.server.com>
<remote.server.com>
则从系统代理绕过主机https://<remote.server.com>