I strongly urge you to not use paramiko on Zato, since it is not gevent friendly. See the last part of my struggle with it here: <Zato scheduler jobs stop working after Gunicorn worker timeout and restart (2.0.7 on RHEL 6.7)>
My solution so far was to migrate to another library which seems to be more friendly to asynchronous SFTP support (ssh2-python), but it still sometimes generates problems when used by several services at the same time, so I used only where I needed (the part where it was agreed with the customer to use SFTP). @dsuch is discussing in another thread some future file handling workflows managed by Zato, which may, in the future include SFTP, but not for 3.0, so do not rely on this for now.
If you do not need strictly SFTP now, I would simply not use it. Use the Zato FTP when possible, since it is gevent friendly.
PS.: FTP on Zato is based on pyfs, which in turn has a problem which in my case returned the wrong mtime for part of the remote file list (but only on some executions). This was what made me try to switch to SFTP and then the struggle began. Now the mtime sensitive part is on ssh2-python and all the rest uses regular FTP access, to avoid crashes in the platform.