sshmitm.server package

class sshmitm.server.HostKeyEntry(key, path, was_generated)

Bases: object

Parameters:
  • key (PKey)

  • path (Path | None)

  • was_generated (bool)

__init__(key, path, was_generated)
Parameters:
  • key (PKey)

  • path (Path | None)

  • was_generated (bool)

key: PKey
path: Path | None
was_generated: bool
class sshmitm.server.SSHProxyServer(listen_address, listen_port, *, key_algorithms=None, key_file_rsa=None, key_file_ecdsa=None, key_file_ed25519=None, key_rsa_length=2048, ssh_interface=<class 'sshmitm.forwarders.ssh.SSHForwarder'>, scp_interface=<class 'sshmitm.forwarders.scp.SCPForwarder'>, netconf_interface=<class 'sshmitm.forwarders.netconf.NetconfForwarder'>, powershell_interface=<class 'sshmitm.forwarders.powershell.PowerShellForwarder'>, sftp_interface=<class 'sshmitm.interfaces.sftp.SFTPProxyServerInterface'>, sftp_handler=<class 'sshmitm.forwarders.sftp.SFTPHandlerPlugin'>, server_tunnel_interface=<class 'sshmitm.forwarders.tunnel.RemotePortForwardingForwarder'>, client_tunnel_interface=<class 'sshmitm.forwarders.tunnel.LocalPortForwardingForwarder'>, authentication_interface=<class 'sshmitm.interfaces.server.ServerInterface'>, authenticator=<class 'sshmitm.authentication.AuthenticatorPassThrough'>, transparent=False, session_class=<class 'sshmitm.session.Session'>, agent_forwarder=<class 'sshmitm.forwarders.agent.AgentForwarder'>, banner_name=None, debug=False)

Bases: object

Parameters:
  • listen_address (str)

  • listen_port (int)

  • key_algorithms (list[str] | None, default: None)

  • key_file_rsa (str | None, default: None)

  • key_file_ecdsa (str | None, default: None)

  • key_file_ed25519 (str | None, default: None)

  • key_rsa_length (int, default: 2048)

  • ssh_interface (type[SSHBaseForwarder], default: <class 'sshmitm.forwarders.ssh.SSHForwarder'>)

  • scp_interface (type[SCPBaseForwarder], default: <class 'sshmitm.forwarders.scp.SCPForwarder'>)

  • netconf_interface (type[NetconfBaseForwarder], default: <class 'sshmitm.forwarders.netconf.NetconfForwarder'>)

  • powershell_interface (type[PowerShellBaseForwarder], default: <class 'sshmitm.forwarders.powershell.PowerShellForwarder'>)

  • sftp_interface (type[BaseSFTPServerInterface], default: <class 'sshmitm.interfaces.sftp.SFTPProxyServerInterface'>)

  • sftp_handler (type[SFTPHandlerBasePlugin], default: <class 'sshmitm.forwarders.sftp.SFTPHandlerPlugin'>)

  • server_tunnel_interface (type[RemotePortForwardingForwarder], default: <class 'sshmitm.forwarders.tunnel.RemotePortForwardingForwarder'>)

  • client_tunnel_interface (type[LocalPortForwardingForwarder], default: <class 'sshmitm.forwarders.tunnel.LocalPortForwardingForwarder'>)

  • authentication_interface (type[BaseServerInterface], default: <class 'sshmitm.interfaces.server.ServerInterface'>)

  • authenticator (type[Authenticator], default: <class 'sshmitm.authentication.AuthenticatorPassThrough'>)

  • transparent (bool, default: False)

  • session_class (type[Session], default: <class 'sshmitm.session.Session'>)

  • agent_forwarder (type[AgentBaseForwarder], default: <class 'sshmitm.forwarders.agent.AgentForwarder'>)

  • banner_name (str | None, default: None)

  • debug (bool, default: False)

SELECT_TIMEOUT = 0.5
__init__(listen_address, listen_port, *, key_algorithms=None, key_file_rsa=None, key_file_ecdsa=None, key_file_ed25519=None, key_rsa_length=2048, ssh_interface=<class 'sshmitm.forwarders.ssh.SSHForwarder'>, scp_interface=<class 'sshmitm.forwarders.scp.SCPForwarder'>, netconf_interface=<class 'sshmitm.forwarders.netconf.NetconfForwarder'>, powershell_interface=<class 'sshmitm.forwarders.powershell.PowerShellForwarder'>, sftp_interface=<class 'sshmitm.interfaces.sftp.SFTPProxyServerInterface'>, sftp_handler=<class 'sshmitm.forwarders.sftp.SFTPHandlerPlugin'>, server_tunnel_interface=<class 'sshmitm.forwarders.tunnel.RemotePortForwardingForwarder'>, client_tunnel_interface=<class 'sshmitm.forwarders.tunnel.LocalPortForwardingForwarder'>, authentication_interface=<class 'sshmitm.interfaces.server.ServerInterface'>, authenticator=<class 'sshmitm.authentication.AuthenticatorPassThrough'>, transparent=False, session_class=<class 'sshmitm.session.Session'>, agent_forwarder=<class 'sshmitm.forwarders.agent.AgentForwarder'>, banner_name=None, debug=False)
Parameters:
  • listen_address (str)

  • listen_port (int)

  • key_algorithms (list[str] | None, default: None)

  • key_file_rsa (str | None, default: None)

  • key_file_ecdsa (str | None, default: None)

  • key_file_ed25519 (str | None, default: None)

  • key_rsa_length (int, default: 2048)

  • ssh_interface (type[SSHBaseForwarder], default: <class 'sshmitm.forwarders.ssh.SSHForwarder'>)

  • scp_interface (type[SCPBaseForwarder], default: <class 'sshmitm.forwarders.scp.SCPForwarder'>)

  • netconf_interface (type[NetconfBaseForwarder], default: <class 'sshmitm.forwarders.netconf.NetconfForwarder'>)

  • powershell_interface (type[PowerShellBaseForwarder], default: <class 'sshmitm.forwarders.powershell.PowerShellForwarder'>)

  • sftp_interface (type[BaseSFTPServerInterface], default: <class 'sshmitm.interfaces.sftp.SFTPProxyServerInterface'>)

  • sftp_handler (type[SFTPHandlerBasePlugin], default: <class 'sshmitm.forwarders.sftp.SFTPHandlerPlugin'>)

  • server_tunnel_interface (type[RemotePortForwardingForwarder], default: <class 'sshmitm.forwarders.tunnel.RemotePortForwardingForwarder'>)

  • client_tunnel_interface (type[LocalPortForwardingForwarder], default: <class 'sshmitm.forwarders.tunnel.LocalPortForwardingForwarder'>)

  • authentication_interface (type[BaseServerInterface], default: <class 'sshmitm.interfaces.server.ServerInterface'>)

  • authenticator (type[Authenticator], default: <class 'sshmitm.authentication.AuthenticatorPassThrough'>)

  • transparent (bool, default: False)

  • session_class (type[Session], default: <class 'sshmitm.session.Session'>)

  • agent_forwarder (type[AgentBaseForwarder], default: <class 'sshmitm.forwarders.agent.AgentForwarder'>)

  • banner_name (str | None, default: None)

  • debug (bool, default: False)

agent_forwarder: type[AgentBaseForwarder]
authentication_interface: type[BaseServerInterface]
authenticator: type[Authenticator]
banner_name: str | None
client_tunnel_interface: type[LocalPortForwardingForwarder]
create_agent_forwarder(session)
Parameters:

session (Session)

Return type:

AgentBaseForwarder

create_agent_local_socket(transport)
Parameters:

transport (Transport)

Return type:

AgentLocalSocket

create_agent_proxy(transport)
Parameters:

transport (Transport)

Return type:

AgentProxy

create_session(client, addr, remoteaddr)
Parameters:
  • client (socket)

  • addr (tuple[str, int] | tuple[str, int, int, int])

  • remoteaddr (tuple[str, int] | tuple[str, int, int, int])

Return type:

None

debug: bool
property host_keys: list[PKey]
netconf_interface: type[NetconfBaseForwarder]
powershell_interface: type[PowerShellBaseForwarder]
print_serverinfo(json_log=False)
Parameters:

json_log (bool, default: False)

Return type:

None

register_subsystem_handlers(transport, session)
Parameters:
  • transport (Transport)

  • session (Session)

Return type:

None

scp_interface: type[SCPBaseForwarder]
server_tunnel_interface: type[RemotePortForwardingForwarder]
session_class: type[Session]
setup_host_keys()
Return type:

None

setup_transport_hooks(session)
Parameters:

session (Session)

Return type:

None

sftp_handler: type[SFTPHandlerBasePlugin]
sftp_interface: type[BaseSFTPServerInterface]
ssh_interface: type[SSHBaseForwarder]
start()
Return type:

None

transparent: bool

Submodules