Skip to main content

Manage persistent ssh tunnels and port forwards.

Latest release 20221228: get_ssh_options: be quiet.

Portfwd runs a collection of ssh tunnel commands persistently, each in its own cs.app.svcd <https://pypi.org/project/cs.app.svcd>_ instance with all the visibility and process control that SvcD brings.

It reads tunnel preconditions from special comments within the ssh config file. It uses the configuration options from the config file as the SvcD signature function thus restarting particular ssh tunnels when their specific configuration changes. It has an "automatic" mode (the -A option) which monitors the desired list of tunnels from statuses expressed via cs.app.flag <https://pypi.org/project/cs.app.flag>_ which allows live addition or removal of tunnels as needed.

Function Condition(portfwd, op, invert, *args)

Factory to construct a condition from a specification.

Class FlagCondition(_PortfwdCondition)

A flag based condition.

Function main(argv=None, environ=None)

Command line main programme.

Class PingCondition(_PortfwdCondition)

A ping based condition.

Class Portfwd(cs.app.flag.FlaggedMixin)

An ssh tunnel built on a SvcD.

Method Portfwd.__init__(self, target, ssh_config=None, conditions=(), test_shcmd=None, trace=False, verbose=False, flags=None): Initialise the Portfwd.

Parameters:

  • target: the tunnel name, and also the name of the ssh configuration used
  • ssh_config: ssh configuration file if not the default
  • conditions: an iterable of Conditions which must hold before the tunnel is set up; the tunnel also aborts if these cease to hold
  • test_shcmd: a shell command which must succeed before the tunnel is set up; the tunnel also aborts if this command subsequently fails
  • trace: issue tracing messages; default False
  • verbose: be verbose; default False
  • flags: optional preexisting Flags instance

Class Portfwds

A collection of Portfwd instances and associated control methods.

Method Portfwds.__init__(self, ssh_config=None, environ=None, target_list=None, auto_mode=None, trace=False, verbose=False, flags=None): Initialise the Portfwds instance.

Parameters:

  • ssh_config: the ssh configuration file if not the default
  • environ: the environment mapping to use; default: os.environ
  • target_list: an iterable of Portfwd target names
  • auto_mode: also derive target names from the set of true PORTFWD_name_AUTO flags
  • trace: trace mode, default False
  • verbose: verbose mode, default False
  • flags: the cs.app.flags.Flags instance to use, default is to construct a new one

Release Log

Release 20221228: get_ssh_options: be quiet.

Release 20210316:

  • Portfwds: accept any iterable for target_list.
  • Portability fix.

Release 20190602:

  • Support alert groups.
  • ssh_argv no longer a property in order to support bare param.
  • New method ssh_options to wrap ssh_argv.
  • Drop sig_func, use ssh_options instead.
  • Remove local UNIX domain socket forward endpoints before starting ssh tunnel.
  • Improve option parse.

Release 20170906: Initial PyPI release.

Release files for cs.app.portfwd 20221228

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cs.app.portfwd 20221228
File Size Uploaded
cs.app.portfwd-20221228.tar.gz 10.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cs.app.portfwd 20221228
File Interpreter ABI Platform
cs.app.portfwd-20221228-py3-none-any.whl Python 3 none any Details

Total release size: 19.7 kB

Release files / cs.app.portfwd-20221228.tar.gz

Download URL cs.app.portfwd-20221228.tar.gz
Size 10.1 kB
Tags Source
SHA-256 checksum
How to use checksums
32eb8ea3619d333ef59aa85a190e4523eeca728f9eed66d13730dd31d2a2ddb2
BLAKE2b-256 checksum
How to use checksums
0cfe5ee50de690e15fb44c709688e78879f6fc42f4a518a442277654d37d7524
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release files / cs.app.portfwd-20221228-py3-none-any.whl

Download URL cs.app.portfwd-20221228-py3-none-any.whl
Size 9.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
611d5885593e05e98484957fffeaca43f962b8ec91bd25d445d562dce7ad0dfc
BLAKE2b-256 checksum
How to use checksums
9a3913b0922efa68c44826d4d27de521704f32e0f84beeae51a188cb5b96b477
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release history Release notifications | RSS feed

This release

20221228 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page