This discussion has been locked. The information referenced herein may be inaccurate due to age, software updates, or external references.
You can no longer post new replies to this discussion. If you have a similar question you can start a new discussion in this forum.

Cisco Firmware Upgrade Issues with SCP

Hello all,

I just setup the firmware upgrade feature today, but I'm running into issues copying files via SCP (TFTP is not allowed on the network).

When I attempt to perform a backup of the configuration, I receive the error 'ERROR: Downloaded firmware image filename "<firmware image>" not found on server'. 

If I remove the backup option and attempt to copy the firmware via SCP, I get 'invalid input detected at '^' marker' where the firmware image is listed.  The upload command that's attempting to run is 'copy scp://<SCPuser> <SCPpassword> <ip address of SolarWinds>/<firmware image> flash:'.

I've tried this with firmware on several respective switches, including two 3850s and one 2960, all with the same error.  My software version is 2019.4 HF1.

I've been following the documentation HERE and HERE, and I just discovered a post from early 2018 saying that SCP wasn't working yet (hopefully it's fixed now).  I've tried this using a network storage location and in the SFTP_Root share on the SolarWinds server, verified that the firmware is correctly in the repository and corresponding templates, and that the SCP server account is valid along with the config transfer directory.  I also enabled the SFTP service on the SolarWinds server.  It appears that the syntax for the commands is incorrect, but apparently I'm not able to update the generated script.

At this point I'm out of ideas and open to suggestions.

  • So, I managed to figure it out, I had to re-do the commands for SCP, and the documentation I found wasn't quite correct.

    For example, to perform a backup of the current firmware from flash to scp, use the following command in the template: copy ${ExistingImagePath} ${TransferProtocol}://${SCPServerUserName}:${SCPServerPassword}@${StorageAddress}${CRLF}${CRLF}${CRLF}

    Note the space after copy and ${ExistingImagePath}, there should be no other spaces afterwards.  Also note characters such as :, /, and @.The extra ${CRLF} statements at the end are carriage returns to agree to the remote host, username, and filename you entered earlier.

    To copy from scp to flash, use the following command in the template: copy ${TransferProtocol}://${SCPServerUserName}:${SCPServerPassword}@${StorageAddress}/${NewImageName} ${NewImageSlot}${CRLF}${CRLF}dir ${NewImageSlot} ${SuccessRegEx:${NewImageName}}${CRLF}${CRLF}${CRLF}

    Again, note the spaces, here they're after copy, the first ${NewImageName}, dir, and the second ${NewImageSlot}.

    One thing to keep in mind with this however: while the clear text SCPServerPassword isn't displayed in the statements above, it WILL be displayed in the generated script, History, and email notifications if enabled.  There may be a way around this as well, but I haven't discovered it yet.