I’ve just stumbled upon Fabric and the documentation doesn’t really make it obvious how it works.
My educated guess is that you need to install it on both client-side and server-side. The Python code is stored on the client side and transferred through Fabric’s wire-protocol when the command is run. The server accepts connections using the OpenSSH SSH daemon through the ~/.ssh/authorized_keys file for the current user (or a special user, or specified in the host name to the fab command).
Is any of this correct? If not, how does it work?
From the docs:
So it’s just like ssh’ing into a box and running the commands you’ve put into
run()/sudo().There is no transfer of code, so you only need to have ssh running on the remote machine and have some sort of shell (bash is assumed by default).
If you want remote access to a python interpreter you’re more looking at something like execnet.
If you want more information on how execution on the remote machine(s) work look to this section of the docs.