About the SessionOption SshPrivateKey - Where does the private key file go, on the host (target) or on the source? . . . and I assume I generate this with PuTTy on the target ?
Private file is private, hence is has to be kept in safety on the local machine. But you need to upload public key to the server.
Again, please refer to
https://winscp.net/eng/docs/guide_public_key