Ну, вы можете получить нечто похожее на то, что использование витой лаз, который работает так:
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()
Тогда вы просто войдите в программу через SSH;
$ ssh [email protected] -p 2222
[email protected]'s password:
Использование Foobar в качестве пароля.
Когда вы входите в систему, вы получите обычное приглашение на python, где вы можете просто высунуть данные. Это не совсем то же самое, что получить трассировку, отправленную на хост.
Теперь, это может быть сложно интегрировать в программу с графическим интерфейсом, в этом случае вам, возможно, придется выбрать другой реактор, например, для программ, основанных на GTK используется gtk2reactor и т.д.
Если вы хотите, чтобы фактические отслеживающий послал вам нужно создать канал сокетов для stderr, stdin и stdout, который проходит через сеть вместо печати на ваш локальный хост. Не должно быть слишком сложно выполнить, используя скрученные.
sudo aptitude install winpdb –