Código Python:
Ver original
import paramiko import time import cmd resp='' class conexionSSH: '''Clase para conectarse a través de SSH''' def __init__(self,server='172.16.0.2',port=22,user='xx',password='xz'): '''Constructor de la clase, establece los argumentos para conectarse al servidor''' self.server=server self.port=22 self.user=user self.password=password def conectar(self): '''Conecta al servidor usando los atributos pasados al constructor''' try: self.ssh = paramiko.SSHClient() self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) self.ssh.connect(self.server,self.port,self.user,self.password) print("COnexion lista") except paramiko.ssh_exception.AuthenticationException as e: print("ERROR 2: %s" %(str(e))) except EOFError as e: print("Cerrando sesión SSH: %s" % (e)) self.ssh.close() def consox(self,shell): '''Ciclo para intectuar con la shell''' while True: cmd=input(' ') shell.send(cmd) shell.send('\n') time.sleep(0.5) resp = shell.recv(9999) print(resp.decode()) class conso(cmd.Cmd): ''' Clase para instaciar la shell de conexion SSH''' def __init__ (self): '''Constructor que instancia la ConexionSSH, y conecta al servidor''' cmd.Cmd.__init__(self) self.com=conexionSSH() self.com.conectar() def do_activate(self,comando): '''Activata la Shell''' shell=self.com.ssh.invoke_shell() resp = shell.recv(9999) print(resp.decode()) self.com.consox(shell) def do_enable(self): '''Comando de root ''' pass consola=conso() consola.cmdloop()