[Twisted-Python] Using telnet or linereceiver protocol over ssh
glyph at twistedmatrix.com
Mon Dec 31 03:54:33 EST 2012
On Dec 30, 2012, at 5:09 AM, Fabian Sturm <f at rtfs.org> wrote:
> I implemented a twisted ssh server using SSHFactory and successfully
> registered the sftp factory.
Great, you're pretty far along then :).
> I now also wanted to add a simple telnet like protocol where I can send
> commands to the server and execute some actions based on that.
> For that I hooked the LineReceive to the openShell command. It works and
> I can ssh into the server, but I don't get the typed characters echoed
> back. This unfortunately makes it unusable.
> What I could do is to implement a standard Protocol and send the
> received data back whenever I get a dataReceived call. And for a DEL
> character I would have to send a BCKSPC, BLANK, BACKSPC sequence and
> track the current line myself. This works but it sounds like too much to
> Is there a better way for something like that?
Have you looked at HistoricRecvLine <https://twistedmatrix.com/documents/current/api/twisted.conch.recvline.HistoricRecvLine.html>?
It's not the easiest class to use, but it should do basically what you need, with various line-editing niceties.
This is also an area that could really benefit from some more maintenance, both in the code and the documentation; writing a command-line interface to Twisted should be a lot easier and more obvious. So if you'd like to contribute to Twisted this is a good place to start :).
More information about the Twisted-Python