服务帐户的HKEY_USERS条目

我为我们的2008R2服务器上的计划任务创build了一个服务帐户。 该任务将运行一个PowerShell脚本,其中包括每次使用PuTTY的PSCP运行时从Linux服务器下载归档文件。

但是,它不起作用,因为服务帐户从未连接到该服务器,并且不知道其主机密钥。 阅读手册和search,事实certificate,这些密钥存储在registry中的HKEY_USERS\<SID>\Software\SimonTatham\PuTTY\SshHostKeys

但问题在于:由于本地login不允许,服务帐户没有本地configuration文件,因此在HKEY_USERS中没有条目。

这怎么解决? 我怀疑这是一个非常好的主意,只需在HKEY_USERS下创buildSID键,但必须有一些解决方法? 我可以把这个在一些默认的用户密钥?

理想情况下,在PuTTY中直接支持命令行选项“预接受”主机密钥或完全closures主机密钥检查将是最简单的解决scheme。 不过, 看起来这个function不会很快出现在这里 。

然而,你已经有了一个运行的powershell脚本,应该能够写入它自己的HKEY_CURRENT_USERregistryconfiguration单元。 而且我假设你的linux服务器的主机密钥不会经常改变。 那么,为什么不直接让powershell脚本在开始进行pscp调用之前将相应的值写入registry?

 Set-ItemProperty "hkcu:\Software\SimonTatham\PuTTY\SshHostKeys" "{name}" "{value}" 

您可以从另一个用户会话中find已经接受密钥的{name}和{value}。 HKEY_USERS\<SID>与匹配该SID的用户的HKEY_CURRENT_USER的根相同。 所以只要您从两个帐户中引用HKEY_CURRENT_USER ,主机密钥的path应该是相同的。