-1

问题:每当通过 Control-M(以 LocalServiceAccount 启动的服务)触发 Windows 批处理文件(包含要执行的命令PSFTP)时,密钥都不会被缓存,并且每次都会提示存储密钥。

说明:我们正在使用psftp.exe(Putty) 执行文件传输。当我使用我的帐户执行批处理文件时,我能够指纹并看到在注册表中更新的密钥(在 下HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys

努力 #1:在 TaskScheduler 中创建了一个任务,以与用户作为 LocalServiceAccount 运行相同的命令(通过批处理文件),并通过ECHO "Y" |在 psftp 命令之前添加来执行指纹识别,这样它就不会提示确认。它有效,但仅适用于测试目的,因为我认为当我们转向生产时这不是一个好习惯。

努力#2:删除所有键并在注册表中手动添加键。它仍然不适用于 LocalServiceAccount,它只适用于我的帐户。LocalServiceAccount 没有进行指纹识别。

PsfTP 命令:

whoami
"C:\Program Files (x86)\PuTTY\psftp" userAccount@HostIPAddreess -i E:\keys\transfer.ppk

(添加 whoami 只是为了确认用户是否正确。)

不管批处理文件是通过 Control-M 服务(作为 LocalServiceAccount 运行)触发还是我们通过任务计划程序运行它都没有关系。在这两种情况下,密钥都没有被缓存。

类似的问题:感谢这篇文章,我得到了临时解决方案来添加 echo "Y"Putty won't cache the keys to access a server when run script in hudson

LocalServiceAccount 是服务器上管理员组的一部分,所以我不确定是否有导致问题的帐户的任何权限。

任何关于我应该寻找什么的建议表示赞赏。

4

1 回答 1

0

安全子系统无法识别 LocalService 帐户。它具有非常有限的权限,并以匿名用户的身份出现在网络子系统中。我不建议允许对 LocalService 帐户进行任何形式的脱机访问。 请参阅 MSDN 文档

于 2018-03-16T21:34:06.427 回答