Bueno, usted puede conseguir algo bastante similar a la que el uso de una boca de hombre retorcido, que funciona así:
from twisted.internet import reactor
from twisted.cred import portal, checkers
from twisted.conch import manhole, manhole_ssh
def getManholeFactory(namespace):
realm = manhole_ssh.TerminalRealm()
def getManhole(_):
return manhole.Manhole(namespace)
realm.chainedProtocolFactory.protocolFactory = getManhole
p = portal.Portal(realm)
p.registerChecker(
checkers.InMemoryUsernamePassword DatabaseDontUse(admin='foobar'))
f = manhole_ssh.ConchFactory(p)
return f
reactor.listenTCP(2222, getManholeFactory(globals()))
reactor.run()
A continuación, sólo iniciar sesión en el programa a través de ssh;
$ ssh [email protected] -p 2222
[email protected]'s password:
Usando foobar como la contraseña.
Cuando inicie sesión, recibirá un aviso normal de Python en el que puede examinar los datos. No es exactamente lo mismo que obtener un rastreo enviado a un host.
Ahora, esto podría ser difícil de integrar en un programa de interfaz gráfica de usuario, en ese caso puede que tenga que elegir otro reactor, por ejemplo, para los programas basados en GTK utilizado el gtk2reactor etc.
Si desea que el rastreo real enviada Además, debe crear un canal de socket para stderr, stdin y stdout que pase por la red en lugar de imprimir en su host local. No debería ser demasiado difícil de lograr mediante el uso de retorcido.
sudo aptitude install winpdb –