Warning

This documentation is actively being updated as the project evolves and may not be complete in all areas.

SSHWrapper Driver

jumpstarter-driver-ssh provides SSH CLI functionality for Jumpstarter, allowing you to run SSH commands with configurable defaults and pass-through arguments.

Installation

pip3 install --extra-index-url https://pkg.jumpstarter.dev/simple/ jumpstarter-driver-ssh

Configuration

Example configuration:

export:
  ssh:
    type: jumpstarter_driver_ssh.driver.SSHWrapper
    config:
      default_username: "root"
      ssh_command: "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
    children:
      tcp:
        type: jumpstarter_driver_network.driver.TcpNetwork
        config:
          host: "192.168.1.100"
          port: 22

Usage

The SSH driver provides a CLI command that accepts all standard SSH arguments:

# Basic SSH connection (uses port forwarding by default)
j ssh

# SSH with direct TCP address
j ssh --direct

# SSH with specific user
j ssh -l myuser

# SSH with other flags
j ssh -i ~/.ssh/id_rsa

# Running a remote command
j ssh ls -la

CLI Options

The SSH command supports the following options:

  • --direct: Use direct TCP address (default is port forwarding)

All other arguments are passed directly to the SSH command. The driver uses the configured SSH command and default username from the driver configuration.

Username Handling

The driver supports multiple ways to specify the username:

  1. -l username flag: Explicit username specification (takes precedence)

  2. Default username: Used when no username is specified in arguments

If no -l flag or user@hostname format is provided, the default username from the driver configuration will be used automatically.

Dependencies

  • ssh: Standard SSH client (usually pre-installed)

API Reference

Driver Methods

class jumpstarter_driver_ssh.client.SSHWrapperClient

Client interface for SSHWrapper driver

This client provides methods to interact with SSH connections via CLI

run(direct, args)

Run SSH command with the given parameters and arguments

Configuration Parameters

Parameter

Description

Type

Required

Default

default_username

Default SSH username to use when no username is specified in the command

str

no

“”

ssh_command

SSH command to use for connections

str

no

“ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=ERROR”

Required Children

  • tcp: A TcpNetwork driver instance that provides the connection details (host and port)