【问题标题】:How to use VPN with Bitbucket Pipelines如何将 VPN 与 Bitbucket 管道一起使用
【发布时间】:2017-12-31 18:14:27
【问题描述】:
我需要从 Bitbucket Pipelines 访问远程服务器。此远程服务器仅可用于将其 IP 地址列入白名单的特定主机。这是我想要的:
Pipelines <---> The gateway host <---> The remote server
我试图使用sshutle 设置基于 ssh 的 VPN 以通过网关主机转发所有网络流量,但看起来管道不允许容器运行 VPN(请参阅issue #12753)。
如何访问远程服务器?
【问题讨论】:
标签:
ssh
bitbucket
bitbucket-pipelines
【解决方案1】:
如果只转发 http/https 对您来说就足够了,那么有一个解决方案。使用 SSH 设置 socks5 代理。
首先,将 Bitbucket 的 SSH 公钥添加到网关服务器上的~/.ssh/authorized_keys。打开Repository --> Settings --> (Pipelines) SSH keys 并按照此页面上的说明进行操作。
然后将这些步骤添加到bitbucket-pipelines.yml:
# Start in foreground (-fN), use compression (-C), set up port forwarding (-D)
ssh -fN -C -D 41337 user@server.foobar.com
export http_proxy='socks5://localhost:41337'
export https_proxy='socks5://localhost:41337'
使用curl检查代理是否有效:
curl http://checkip.amazonaws.com
【解决方案2】:
你也可以用一条线创建SSH隧道而不是代理,你可以放多个IP地址,这对我有用。它将 9200 和 5000 从服务器公开到您的本地主机
ssh -fN user@server -L *:9200:localhost:9200 -L *:5000:localhost:5000