I am building a batch file so that I can push firmware to 600 plus devices.
If I am at a command prompt I can run the following command on a single line that will pu
Do not blindly answer "y", you lose a protection against man-in-the-middle attacks.
You should use the -hostkey switch with your host key fingerprint.
Actually it's the same with WinSCP, that you ended up using. WinSCP open command also has the -hostkey
switch.
If it does work without the -hostkey
switch, it's because the host key is cached in Windows registry from some previous interactive use of WinSCP.
Similarly, that's the same with pscp. Had you used PuTTY or pscp (or any other tools from PuTTY suite) before interactively and had you confirmed the host key, it would get cached. And later automatic uses would pass without confirmation.
I ended up using WinSCP.net for the batch file to correctly do what I was trying to do. Here is the example of how to do the above with WinSCP.net.
@echo off
"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
/log="C:\Program Files (x86)\WinSCP\WinSCP.log" /ini=nul ^
/command ^
"open scp://root:root@192.168.1.1/" ^
"Put C:\CNA1000\Firmware\CNA1504v1.1.7\CNA1504v1_1_7.run /tmp/." ^
"exit"
set WINSCP_RESULT=%ERRORLEVEL%
if %WINSCP_RESULT% equ 0 (
echo Success
) else (
echo Error
)
exit /b %WINSCP_RESULT%
And repeat for each IP address.