Chapter 14. SSH
SSH, the Secure SHell, is an essential tool for many developers and administrators. SSH provides a way to establish encrypted, authenticated connections. The most common use of an SSH connection is to get a remote shell, but it’s possible to do many other things through SSH as well, including transferring files and tunneling other connections.
The twisted.conch
package adds SSH support to Twisted. This
chapter shows how you can use the modules in twisted.conch
to
build SSH servers and clients.
SSH Servers
The command line is an incredibly efficient interface for certain tasks. System administrators love the ability to manage applications by typing commands without having to click through a graphical user interface. An SSH shell is even better, as it’s accessible from anywhere on the Internet.
You can use twisted.conch
to create an SSH server that
provides access to a custom shell with commands you define. This shell will even support some
extra features, like command history, so that you can scroll through the commands you’ve
already typed.
A Basic SSH Server
To write an SSH server, implement a subclass of twisted.conch.recvline.HistoricRecvLine
that implements your shell
protocol. HistoricRecvLine
is similar to twisted.protocols.basic.LineReceiver
, but with higher-level
features for controlling the terminal.
To make your shell available through SSH, you need to implement a few different classes that
twisted.conch
needs to build an SSH server. First, you need ...
Get Twisted Network Programming Essentials, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.