I have written a PS1 script that 7-zips a file and uses PuTTY's SCP to store it at my back-up server. I have tested it and it works perfectly.
Then I log into my SQL Server Agent and add an extra step to my back-up job to execute that script as soon as it's done with its back-up job. It's called correctly, the .7z file is created, and pscp.exe is called... and halts. I go to SQL Server Agent's Job Activity Monitor and find this:
Message
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 b5:f8:d2:5f:be:90:b6:be:15:d3:26:d5:c6:42:59:05
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n)
Now this is a non-interactive session so I have no opportunity to press "y" there. On top of that, I have no idea which user this job is running on, and even if I knew that, I have no idea where this cache is. What now?