Gracias por janc, he añadido algunas modificaciones para el ejemplo y probado en Python3, es realmente útil para mí.
import paramiko
import getpass
pw = getpass.getpass()
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.WarningPolicy())
#client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
def start():
try :
client.connect('127.0.0.1', port=22, username='ubuntu', password=pw)
return True
except Exception as e:
#client.close()
print(e)
return False
while start():
key = True
cmd = input("Command to run: ")
if cmd == "":
break
chan = client.get_transport().open_session()
print("running '%s'" % cmd)
chan.exec_command(cmd)
while key:
if chan.recv_ready():
print("recv:\n%s" % chan.recv(4096).decode('ascii'))
if chan.recv_stderr_ready():
print("error:\n%s" % chan.recv_stderr(4096).decode('ascii'))
if chan.exit_status_ready():
print("exit status: %s" % chan.recv_exit_status())
key = False
client.close()
client.close()
¡¡Realmente aprecio por su respuesta !! Lo he usado en mi proyecto. Muchas gracias. Hasta ahora puedo usar paramiko en lugar de envolver el comando del sistema ssh en la programación con python. – Beyonder
Es solo algo que armé al mirar el origen de SSHClient, por lo que podría no ser * óptimo *. Por cierto: si esto hace lo que quieres, es posible que quieras "aceptar" mi respuesta. – JanC
Link Dead Actualiza –