我需要从Bitbucket Pipelines访问远程服务器。此远程服务器仅适用于其IP地址列入白名单的特定主机。这就是我想要的:
Pipelines <---> The gateway host <---> The remote server
我尝试使用sshutle
设置基于ssh的VPN以通过网关主机转发所有网络流量,但看起来管道不允许容器运行VPN(请参阅{{3 }})。
如何访问远程服务器?
答案 0 :(得分:3)
如果只转发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
答案 1 :(得分:0)
您也可以使用一行创建SSH隧道而不是代理,并且您可以放置多个IP地址,这对我有用。它将9200和5000从服务器暴露给您的localhost
ssh -fN user@server -L *:9200:localhost:9200 -L *:5000:localhost:5000