- rewrite in python?
- support non-ssh access?
- Bug: os.path.join() may be wrong for the remote side!