【问题标题】:New host key every day using MSFTP and WinSCP每天使用 MSFTP 和 WinSCP 的新主机密钥
【发布时间】:2026-01-04 11:30:02
【问题描述】:

我正在使用源端的“Core FTP mini-sftp-server”和目标端的 WinSCP(两台服务器都运行 Windows)将文件从一台服务器传输到另一台服务器。

我正在使用两台服务器上相同的本地管理员帐户登录这两台机器。 我一直在手动执行此过程:

  • 在源上启动 MSFTP 服务器
  • 在目标上启动 WinSCP,连接到源并获取文件。

现在我想自动化它,我尝试了以下

从源代码的命令行启动msftp

winscp.exe 控制台中的目的地:

open login:password@IPAdress
get <file> <destination>
close
exit

问题是如果我每天第一次这样做,它会要求我更新目标端的密钥:

“警告潜在的安全漏洞!服务器的主机密钥不 与 WinSCP 匹配的是缓存。这意味着无论是服务器 管理员已收取主机密钥,服务器呈现不同 特定情况下的密钥,或者您实际上已连接到 另一台计算机伪装成服务器”

我必须首先手动执行(单击更新),然后对于以下副本,自动化工作。

问题:

如何在连接服务器时使用 cmd 行更新密钥?

我可以阻止源每天生成新密钥吗?还是我应该这样做?

【问题讨论】:

  • 服务器是Windows机器

标签: sftp public-key winscp


【解决方案1】:

您应该阻止源服务器生成新密钥 - 绝对没有理由这样做。服务器的公钥标识服务器,因此不应更改此身份。

【讨论】:

  • 感谢您的回复。我应该如何/在哪里停止它以生成新密钥?
  • 我希望我知道。我从未听说过每天生成新密钥的服务器。查看论坛后,似乎迷你服务器的工作方式可能就是这样。可能值得在那里发布一个问题 (coreftp.com/forums/viewforum.php?f=13)
  • :-( 我确实在上面发布了一个问题coreftp.com/forums/viewtopic.php?p=88666#88666 我在另一台机器(DR 机器)上使用迷你服务器,但它不会抱怨这样的事情。
【解决方案2】:

连接到每天都会更改公钥的 SSH 服务器会失去任何安全性。

无论如何,如果这是您唯一的选择,最近的 WinSCP 允许使用 -hostkey=* switch of the open command 自动接受任何主机密钥:

open -hostkey=*

这样做你会失去任何安全性,但你已经失去了,所以没有区别。

【讨论】: