Initiate SSH tunnels in the background
Project description
bgtunnel - Initiate SSH tunnels in the background
Useful when you need to connect to a database only accessible through
another ssh-enabled host. It works by opening a port forwarding ssh
connection in the background, using threads. The connection(s) are
automatically closed when the process exits, or when explicitly calling
the `close` method of the returned SSHTunnelForwarderThread object.
Notes on default values
-----------------------
* Bind address and host address defaults to "127.0.0.1"
* SSH port defaults to 22
* Local port defaults to picking a random available one, accessible from the
object returned by the `open` function
Usage examples
--------------
# Enable forwarding for a MS SQL server running on the remote SSH host
import bgtunnel
>>> forwarder = bgtunnel.open(ssh_user='manager', ssh_address='1.2.3.4',
... bind_port=1433)
>>> print(forwarder.host_port)
59432
>>> import somesqlpkg
>>> conn = somesqlpkg.connect('mssql://myuser:mypassword@localhost:' +
forwarder.port)
# Enable forwarding for an old AS400 DB2 server accessible only via
# the remote SSH host. Multiple ports need to be opened.
import bgtunnel
>>> ports = (446, 449, 8470, 8471, 8472, 8473, 8474, 8475, 8476)
>>> forwarders = []
>>> for port in ports:
... forwarders.append(bgtunnel.open(ssh_user='manager',
... ssh_address='1.2.3.4',
bind_address='192.168.0.5',
... bind_port=port, host_port=port))
>>> print(*tuple(f.host_port for f in forwarders))
446
449
8470
8471
8472
8473
8474
8475
8476
>>> import somesqlpkg
>>> conn = somesqlpkg.connect('mssql://myuser:mypassword@localhost:446')
Useful when you need to connect to a database only accessible through
another ssh-enabled host. It works by opening a port forwarding ssh
connection in the background, using threads. The connection(s) are
automatically closed when the process exits, or when explicitly calling
the `close` method of the returned SSHTunnelForwarderThread object.
Notes on default values
-----------------------
* Bind address and host address defaults to "127.0.0.1"
* SSH port defaults to 22
* Local port defaults to picking a random available one, accessible from the
object returned by the `open` function
Usage examples
--------------
# Enable forwarding for a MS SQL server running on the remote SSH host
import bgtunnel
>>> forwarder = bgtunnel.open(ssh_user='manager', ssh_address='1.2.3.4',
... bind_port=1433)
>>> print(forwarder.host_port)
59432
>>> import somesqlpkg
>>> conn = somesqlpkg.connect('mssql://myuser:mypassword@localhost:' +
forwarder.port)
# Enable forwarding for an old AS400 DB2 server accessible only via
# the remote SSH host. Multiple ports need to be opened.
import bgtunnel
>>> ports = (446, 449, 8470, 8471, 8472, 8473, 8474, 8475, 8476)
>>> forwarders = []
>>> for port in ports:
... forwarders.append(bgtunnel.open(ssh_user='manager',
... ssh_address='1.2.3.4',
bind_address='192.168.0.5',
... bind_port=port, host_port=port))
>>> print(*tuple(f.host_port for f in forwarders))
446
449
8470
8471
8472
8473
8474
8475
8476
>>> import somesqlpkg
>>> conn = somesqlpkg.connect('mssql://myuser:mypassword@localhost:446')
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bgtunnel-0.2.2.tar.gz
(6.1 kB
view details)
File details
Details for the file bgtunnel-0.2.2.tar.gz.
File metadata
- Download URL: bgtunnel-0.2.2.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
853e6717ffaafe11469abba3373492ce8c3d1cb73b89910b857ad8e1d3f36461
|
|
| MD5 |
e8b4c65135867f016007c48ccd60d98f
|
|
| BLAKE2b-256 |
a3573caa689c5281b538ee113fa020de329d622d203c7310ce63d228991040f2
|