问题描述
||
我正在从以特定Windows用户身份运行的C#代码中调用plink。我称plink像
plink.exe user @ hostname -pw密码命令
通常,plink进程在运行命令后立即结束,但是当运行代码的用户未登录Windows时,plink进程不会结束。
随着所有这些僵尸进程的建立,出现了无法再创建新进程的情况……
知道为什么会这样吗?
解决方法
这可能是因为您第一次连接到新服务器时,PuTTY在注册表中的当前登录用户下(在HKEY_CURRENT_USER下)注册了一个主机密钥。由于该用户未登录,因此注册表的该部分可能无法访问。
尝试将密钥移至HKEY_LOCAL_SYSTEM。此处详细描述了该过程:
http://xxlinxx.wordpress.com/2009/03/23/set-up-an-ssh-tunnel-as-a-windows-service-using-putty-plink/
根据您的特定用例,该页面上的最后一条注释可能也很重要:
\“此外,如果Windows SYSTEM用户看不到用于SSH连接的主机密钥,则无法建立隧道。\”
PS:这里还有另一页,讨论将证书移至HKEY_USERS.DEFAULT