Skip to main content

Meta-magical SSH tunnels for remote developers behind firewalls.

Project description

Meta-magical SSH tunnels for remote developers behind firewalls.

Currently allows for sharing SSH connections (for collaborating in tmux+vim) and for sharing local development webservers.

Install

Relay can be installed in a virtualenv, but we recommend installing it with sudo so it is always available:

sudo pip install relay

General setup

(nprapps users see the next section)

Relay uses a configuration file located at ~/.relay.conf. Create this file with contents such as:

[relay]

# User to connect to the relay server as
user = ubuntu
server = relay_server.your_domain.com
private_key = /path/to/your/private_key
public_key = /path/to/your/public_key.pub
pair_user = relay
ports_json = /path/to/your/ports.json
bash_profile = /path/to/your/bash_profile

ports.json is a mapping of user’s local ports to remote ports on the server, so that users will never collide when creating SSH tunnels. Create this file with contents such as:

{
    "chris": {
        "22": "2222",
        "8000": "8000"
    },
    "katie": {
        "22": "2223",
        "8000": "8001"
    },
}

You then need to create a relay user. This process is automated:

relay setup

NPRApps setup

Pre-baked configuration files are in our Dropbox folder. You must have Dropbox installed, syncing to ~/Dropbox and the nprapps shared folder synced to your local computer. Then run:

ln -s ~/Dropbox/nprapps/relay/relay.conf ~/.relay.conf
relay setup

Sharing SSH

To share your SSH connection (for tmux’ing), open a new terminal (or tab or tmux pane):

relay user:$USER share:22

Where $USER is your username in ports.json.

To connect to a shared SSH connection:

relay user:$USER ssh

Where $USER is the username in ports.json of the user sharing the connection.

Sharing development webserver

To share your local development webserver, open a new terminal (or tab or tmux pane):

relay user:$USER share:8000

Where $USER is your username in ports.json.

To connect open a shared webserver in your browser:

relay user:$USER web

Where $USER is the username in ports.json of the user sharing the webserver.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

relay-0.0.6.tar.gz (3.3 kB view details)

Uploaded Source

File details

Details for the file relay-0.0.6.tar.gz.

File metadata

  • Download URL: relay-0.0.6.tar.gz
  • Upload date:
  • Size: 3.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for relay-0.0.6.tar.gz
Algorithm Hash digest
SHA256 7780cfa89b5fb1e48549a6c914ad62984dbe44f72692fbb0fad4ae53a1e18ce9
MD5 a899e1dc2c5d73af6534460da85467a9
BLAKE2b-256 cb8326c930cece7395eecc1634d57ddd30dd3f9d8f830d502b37fe6b5b5ab129

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page