我有以下的 .bat 文件(可用):
"%winscp%" /ini=nul ^
/log=C:\TEMP\winscplog.txt ^
/command "open scp://goofy:changeme@10.61.10.225/ -hostkey=""ssh-rsa 2048 d4:1c:1a:4c:c3:60:d5:05:12:02:d2:d8:d6:ae:6c:5d""" ^
"put ""%outfile%"" /home/public/somedir/somesubdir/%basename%" ^
"exit"
我尝试将其复制到类似于以下的PowerShell脚本中:
& $winscp "/ini=nul" `
"/log=C:\TEMP\winscplog.txt" `
"/command" 'open sftp://goofy:changeme@10.61.10.225/ -hostkey="ssh-rsa 2048 d4:1c:1a:4c:c3:60:d5:05:12:02:d2:d8:d6:ae:6c:5d"' `
"put `"" + $outfile + "`" /home/public/somedir/somesubdir/" + $basename `
"exit"
当我运行.bat脚本时,文件将会上传。
当我运行.ps1脚本时,我会得到“主机密钥与配置的密钥ssh-rsa不匹配”的错误提示。
我怀疑在powershell中我没有正确格式化命令,因此主机密钥被winscp看到时已经损坏了。
我检查了日志,只显示了来自主机的主机密钥。它没有显示我正在使用的密钥。通过更改我的主机并注意到它没有出现在日志中,我确认了这一点。我比较了.bat和.ps1之间的日志,差别在于ps1以上述错误终止。
winscp是一个sftp实用程序。
Get-WmiObject -Class Win32_Process -Filter 'Name = ''WinSCP.exe''' -Property CommandLine
)。 - Lance U. Matthews