Change manhole to use ssh

This commit is contained in:
Erik Johnston 2016-01-07 13:57:04 +00:00
parent 87d577e023
commit c9ae1d1ee5
1 changed files with 21 additions and 5 deletions

View File

@ -42,6 +42,12 @@ from synapse.storage.prepare_database import UpgradeDatabaseException
from synapse.server import HomeServer from synapse.server import HomeServer
from twisted.conch.manhole import ColoredManhole
from twisted.conch.insults import insults
from twisted.conch import manhole_ssh
from twisted.cred import checkers, portal
from twisted.internet import reactor, task, defer from twisted.internet import reactor, task, defer
from twisted.application import service from twisted.application import service
from twisted.enterprise import adbapi from twisted.enterprise import adbapi
@ -67,7 +73,6 @@ from synapse.metrics.resource import MetricsResource, METRICS_PREFIX
from synapse import events from synapse import events
from daemonize import Daemonize from daemonize import Daemonize
import twisted.manhole.telnet
import synapse import synapse
@ -248,10 +253,21 @@ class SynapseHomeServer(HomeServer):
if listener["type"] == "http": if listener["type"] == "http":
self._listener_http(config, listener) self._listener_http(config, listener)
elif listener["type"] == "manhole": elif listener["type"] == "manhole":
f = twisted.manhole.telnet.ShellFactory() checker = checkers.InMemoryUsernamePasswordDatabaseDontUse(
f.username = "matrix" matrix="rabbithole"
f.password = "rabbithole" )
f.namespace['hs'] = self
rlm = manhole_ssh.TerminalRealm()
rlm.chainedProtocolFactory = lambda: insults.ServerProtocol(
ColoredManhole,
{
"__name__": "__console__",
"hs": self,
}
)
f = manhole_ssh.ConchFactory(portal.Portal(rlm, [checker]))
reactor.listenTCP( reactor.listenTCP(
listener["port"], listener["port"],
f, f,