For an SFTP upload, the "Generate Code.." function incorrectly stores the SSH private key encryption passphrase in the SessionOption property 'Password', rather than in the correct property 'PrivateKeyPassphrase'. This causes the script to fail authentication when it tries to open the session.
Steps that produced this bug for me:
1) Opened an SFTP connection to the IP address of an SFTP server on a non-standard port using no password and a passphrase-protected 4096-bit RSA PuTTYgen ppk private key file.
2) Right-clicked a file > "Upload (F5)" > "Upload..."
3) In the dialog box, clicked the arrow next to "Transfer settings..." and chose "Generate code..."
4) Noted that in every script or .NET assembly code option, the SSH key passphrase is treated like an SSH password and not an SSH private key passphrase.
For example, in .NET code, it is stored under the SessionOption property 'Password' instead of 'PrivateKeyPassphrase'. And in script code it uses the format <username>:<sshkeypassphrase>@<server>:<port> as though the passphrase was a password.