Giter Site home page Giter Site logo

oliversd / docker-ssh-tunnel Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jujhars13/docker-ssh-tunnel

0.0 0.0 0.0 40 KB

Pure SSH tunnel to a bastion host, then proxy a db/service from there. No fluff

Home Page: https://hub.docker.com/r/jujhars13/docker-ssh-tunnel/

License: MIT License

Shell 72.23% Dockerfile 27.77%

docker-ssh-tunnel's Introduction

Docker SSH Tunnel

Create a lightweight Alpine Linux based SSH tunnel to a host. Uses pure SSH, no fluff.

Steps

  1. Run
    docker build -t symlab/ssh-tunnel .
    
  2. Run
    docker run -d \
    -p 5432:5432 \
    -e LOCAL_PORT=5432 \
    -e REMOTE_PORT=5432 \
    -e SSH_BASTION_HOST=IP_BASTION \
    -e REMOTE_SERVER_IP=DNS_RDS_AWS \
    -e SSH_USER=YOUR_USER \
    -e SSH_PASS=YOUR_PASSWORD \
    symlab/ssh-tunnel
    

Usage

For example I use it to create a SSH tunnel from a GCP Kubernetes cluster into an on prem bastion host in order to talk to an on prem MySQL database; it SSHs onto the internal LAN and connects me to the internal on prem MySQL server.

Inspired by https://github.com/iadknet/docker-ssh-client-light and GCP CloudSQL Proxy

Required Parameters

# local port on your machine/k8s cluster
LOCAL_PORT=3306

# remote port from the machine your SSHing into
REMOTE_PORT=3306

# OPTIONAL defaults to 127.0.0.1
REMOTE_SERVER_IP="my.internal.mariadb.server"

# the bastion/host you're connecting to
SSH_BASTION_HOST="bastion.host"

# OPTIONAL defaults to 22
SSH_PORT=2297

SSH_USER="tunnel_user"

SSH_PASS="tunnel_pass"

Also be sure to inject/mount your private ssh key into the container to /ssh_key/id_rsa

Example

# connect to our mongo server in AWS via a bastion host
# now we can use a connection string like this:
# mongodb://localhost:27017
# to talk to our AWS mongo install

docker run -it --rm \
-p 5432:5432 \
-e LOCAL_PORT=5432 \
-e REMOTE_PORT=5432 \
-e SSH_BASTION_HOST=IP_BASTION \
-e REMOTE_SERVER_IP=DNS_RDS_AWS \
-e SSH_USER=ec2-user \
-e SSH_PASS=YOUR_PASSWORD \
symlab/ssh-tunnel

# connection established, now we can postgresql on localhost

TODO

  • add example docker-compose.yml to /examples

Version

  • 2022-07-07 - v1.9

docker-ssh-tunnel's People

Contributors

jujhars13 avatar oliversd avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.