FTP over SSH is very rare and practically not used due to the nature of the FTP protocol. Didn't you mean the SFTP protocol that is usually used to transfer files over SSH? We have an article where you can learn more about FTP and SFTP protocols.
Moreover, could you please explain what you mean by the "proxy" in your description?
Do you have to write a simple SFTP client and SFTP server as I understand it, or do you need some kind of SSH tunneling program?
If you need to write SFTP client and server in C#, you could download our free 30-day trial of Rebex File Transfer Pack for .NET (it contains classes for both SFTP client and server) and then either look into the source code of our sample projects and get inspired:
For SFTP client there are for instance these sample projects:
- SFTP Console Client or Winform SFTP client
For SFTP server there is the File Server Winform sample project.
Or alternatively, there is a lot of ready to use code snippets in both C# and Visual Basic available for Rebex SFTP client and Rebex File Server.