# Functions

EnsureKnownHosts scans the bastion host for its SSH keys and writes them to a custom known hosts location for promptless interaction with the infrastructure.
GetAuthMethods tries to contact ssh-agent to get the AuthMethods and falls back to reading the keyfile directly in case of a missing SSH_AUTH_SOCK env var or an error dialing the unix socket.
KeyScan runs ssh-keyscan silently against the provided bastion address.
SSH establishes an interactive Secure Shell session to the supplied host as user ubuntu and on port 22.
StartInteractiveSSHShell starts an interactive SSH shell with the supplied ClientConfig.
StartRemoteListener sets up a remote listener on the SSH connection.

# Constants

ConfigPath is the path to write the simulator SSH config file.
KnownHostsPath is the path to write the simulator SSH config file.
PrivateKeyPath is the path to the key to be generated and used by simulator.
PublicKeyPath is the path to the key to be generated and used by simulator.

# Structs

KeyPair has an SSH Private and Public key pair.
LocalStateProvider is the default State provider and persists all state into the local ~/.kubesim directory.

# Interfaces

StateProvider provides methods for storing or retrieving state about a user and their cluster.

# Type aliases

PrivateKey represents an SSH PrivateKey.
PublicKey represents an SSH PublicKey.