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: ATcpNetworkdriver 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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jumpstarter_driver_ssh_mitm-0.8.1.tar.gz.
File metadata
- Download URL: jumpstarter_driver_ssh_mitm-0.8.1.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
163a8f446386a187e9b787fc4c270bf7551ec1615e0c346b3d10b50baa4c4555
|
|
| MD5 |
ab548024ec55868989043409f6545891
|
|
| BLAKE2b-256 |
d4c2671169b628fdfb57fec16d7aaa46e6b0c5080fe39b170aa7f7a0a7c31fdd
|
File details
Details for the file jumpstarter_driver_ssh_mitm-0.8.1-py3-none-any.whl.
File metadata
- Download URL: jumpstarter_driver_ssh_mitm-0.8.1-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
389d9d8cd2de6035fe5cfe328f8a4a588fe692390d1d9e3167589b300a3b8e16
|
|
| MD5 |
0d533d6a281fcf6f2ff0d154b96ab56c
|
|
| BLAKE2b-256 |
49c62919439465ec56deddfaed79ccd3b9ce7a94f66f3564fcd5f86dc1e45e4c
|