WinSCP C# Example
Note: If ppk is required by destination FTP site, make sure the ppk is loaded into Pageant first. Else authentication will fail when the .NET app tries to connect to the FTP site, even if “GiveUpSecurityAndAcceptAnySshHostKey = true” is set. Sources: https://winscp.net/eng/docs/library_examples