4

尝试使用 PowerShell 从 PowerShell 连接到 SFTP 服务器时收到以下消息psftp

错误:

psftp.exe :服务器的主机密钥未缓存在注册表中。您无法保证服务器就是您认为的计算机。
服务器的 rsa2 密钥指纹为:ssh-rsa 2048 41289438190410491
连接被放弃。

PowerShell 脚本:

$Username = "Username"
$Password = "Password"

psftp.exe sftpserver -l $Username -pw $Password -batch -bc -b C:\batch\download.bat

(psftp.exe存放在c:\windows\system32)

我之前通过 PuTTY 和 WinSCP 从该服务器 SSH 到该服务器,没有问题。但是,它在通过 PowerShell 运行时不会连接。

4

1 回答 1

5

该消息不是错误。

每个 SSH/SFTP 客户端都需要验证服务器的主机密钥。

甚至 PuTTY 和 WinSCP 在您第一次连接到服务器时都会要求您确定是否验证主机密钥。

虽然 PuTTY 和 psftp 共享一个主机密钥缓存。您确定在同一台机器上使用相同的本地 Windows 帐户使用 PuTTY 吗?

无论如何,要么:

  • -batch在没有开关的情况下运行一次 psftp 。检查主机密钥并确认您是否信任它。psftp 将缓存主机密钥并从现在开始工作。
  • 或者将-hostkey带有可信主机密钥指纹的开关添加到psftpPowerShell 脚本中的命令中。

另请参阅Respond y(es) to psftp host key prompt(尽管@vmitchell85 的最高得分答案是错误的,请参阅@GerriePretorius 的答案)。

于 2018-03-09T19:25:09.953 回答