Skip to main content

SSH Man-in-the-Middle driver for Jumpstarter that securely stores SSH keys on the server and proxies connections

Project description

SSH MITM Driver

jumpstarter-driver-ssh-mitm provides a secure SSH proxy layer where private keys are stored on the exporter and never transmitted to clients. It is designed to be used as a child of SSHWrapper.

Installation

:substitutions:
$ pip3 install --extra-index-url {{index_url}} jumpstarter-driver-ssh-mitm

Architecture

SSHWrapper --> SSHMITM --> TcpNetwork --> DUT
  • SSHWrapper: Handles SSH CLI and command execution
  • SSHMITM: Provides authenticated proxy connection (stores the SSH key)
  • TcpNetwork: Raw TCP connection to the DUT

Configuration

The command name is determined by the key in the export section. Use ssh_mitm to get the j ssh_mitm command:

export:
  ssh_mitm:  # ← This gives you "j ssh_mitm" command
    type: jumpstarter_driver_ssh.driver.SSHWrapper
    config:
      default_username: root
    children:
      tcp:
        type: jumpstarter_driver_ssh_mitm.driver.SSHMITM
        config:
          ssh_identity_file: /path/to/private/key
          default_username: root
        children:
          tcp:
            type: jumpstarter_driver_network.driver.TcpNetwork
            config:
              host: 192.168.1.100
              port: 22

Or with inline key:

export:
  ssh_mitm:  # ← This gives you "j ssh_mitm" command
    type: jumpstarter_driver_ssh.driver.SSHWrapper
    config:
      default_username: root
    children:
      tcp:
        type: jumpstarter_driver_ssh_mitm.driver.SSHMITM
        config:
          default_username: root
          ssh_identity: |
            -----BEGIN OPENSSH PRIVATE KEY-----
            ...
            -----END OPENSSH PRIVATE KEY-----
        children:
          tcp:
            type: jumpstarter_driver_network.driver.TcpNetwork
            config:
              host: 192.168.1.100
              port: 22

SSHMITM Config parameters

Parameter Description Type Required Default
default_username SSH username for DUT connection str no ""
ssh_identity SSH private key content (inline) str no* None
ssh_identity_file Path to SSH private key file str no* None

* Either ssh_identity or ssh_identity_file must be provided.

Required children

  • tcp: A TcpNetwork driver providing target host and port

Usage

Since SSHMITM is used as a child of SSHWrapper, you use the configured command name (e.g., ssh_mitm):

# Execute a command
j ssh_mitm whoami

# Interactive shell
j ssh_mitm

# With arguments
j ssh_mitm ls -la /tmp

# With SSH flags
j ssh_mitm -v hostname

Note: The command name (ssh_mitm) is determined by the key in your exporter config's export section. You can use any name you prefer.

API Reference

.. autoclass:: jumpstarter_driver_ssh_mitm.driver.SSHMITM()

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

jumpstarter_driver_ssh_mitm-0.8.1.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jumpstarter_driver_ssh_mitm-0.8.1-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file jumpstarter_driver_ssh_mitm-0.8.1.tar.gz.

File metadata

File hashes

Hashes for jumpstarter_driver_ssh_mitm-0.8.1.tar.gz
Algorithm Hash digest
SHA256 163a8f446386a187e9b787fc4c270bf7551ec1615e0c346b3d10b50baa4c4555
MD5 ab548024ec55868989043409f6545891
BLAKE2b-256 d4c2671169b628fdfb57fec16d7aaa46e6b0c5080fe39b170aa7f7a0a7c31fdd

See more details on using hashes here.

File details

Details for the file jumpstarter_driver_ssh_mitm-0.8.1-py3-none-any.whl.

File metadata

File hashes

Hashes for jumpstarter_driver_ssh_mitm-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 389d9d8cd2de6035fe5cfe328f8a4a588fe692390d1d9e3167589b300a3b8e16
MD5 0d533d6a281fcf6f2ff0d154b96ab56c
BLAKE2b-256 49c62919439465ec56deddfaed79ccd3b9ce7a94f66f3564fcd5f86dc1e45e4c

See more details on using hashes here.

Supported by

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