Source code for nettoolkit.capture.jump_server


# ---------------------------------------------------------------------------
# IMPORT
# ---------------------------------------------------------------------------
from jumpssh import SSHSession
from dataclasses import dataclass, field


# ======================================================================================================
#  Jump Server Object 
# ======================================================================================================
[docs] @dataclass class JumpServer(): server: str = '' server_login_username: str = '' server_private_key_file: str = field(default=None) server_login_password: str = field(default=None) def __post_init__(self): self.create_server_session() self.connect_server() # ssh session : laptop to jump server
[docs] def create_server_session(self): try: if self.server_private_key_file is not None: print(f"[+] Logging server {self.server} with username {self.server_login_username}, using PSK") self.session_obj = SSHSession(host=self.server, username=self.server_login_username, private_key_file=self.server_private_key_file) else: print(f"[+] Logging server {self.server} with username {self.server_login_username}, using password {self.server_login_password}") self.session_obj = SSHSession(host=self.server, username=self.server_login_username, password=self.server_login_password) # except Exception as e: print(f"[-] Error Establising ssh session for server {self.server} using username {self.server_login_username}\n{e}") quit()
[docs] def connect_server(self): self.server_session = self.session_obj.open() print(f"[+] Logging server {self.server}... Successful")
[docs] def erase_hostkey(self, host): try: print(f" [~] Erasing stored public key for {host}") return self.server_session.get_cmd_output(f"ssh-keygen -R {host}") print(f" [+] Erasing stored public key for {self.device}... Completed") except: print(f" [-] Erasing stored public key for {self.device}... Failed") return False
[docs] def get_cmd_output(self, cmd): return self.server_session.get_cmd_output(cmd)
[docs] def get_remote_session(self,*args, **kwargs): return self.server_session.get_remote_session(*args, **kwargs)
# ====================================================================================================== if __name__ == '__main__': pass # ======================================================================================================