Our Servlets FAQ has a list of hosting companies, a few of which are free. Since hosting companies provide some SSH functionality, that will get you SFTP.
What you really want is a "shell account", basically a user account on a remote system. A quick googling finds several providers of free shell accounts. I can't vouch for their capabilities.