This page will try to give a high level overview of how the framework is
working. While the end-user of the framework won’t usually touch much more than
Host classes, there’s a lot more going on underneat.
There’s a lot of meta-programming, some domain specific languages, and a mix of event-driven and blocking code.
Roughly, this is the current flow from the interactive shell untill the actual SSH client.
Paramiko, at the lowest level, is responsible for the SSH connection. The
Host class takes care of calling Paramiko, the end-user should not directly
depend on Paramiko. In the future, we may replace it with for instance
At the top level, we usually have the interactive shell. But if a deployment script is called as a library, it can have any other front-end. The built-in interactive shell also has a telnet server (remote shell) and a shell which has some multithreaded execution model (parallel deployment). These are realized through Twisted Matrix, and there’s some event-driven code touching the iterative blocking code.