我有一个窗口服务,它将使用plink.exe进行SSH连接,我发现Plink找不到正在运行的Pageant。
以下是我迄今所采取的步骤。
注意:如果我将Windows服务作为控制台应用程序与该用户一起运行,那么一切都正常。
发布于 2012-08-07 01:56:52
发布于 2012-08-02 11:17:03
PLink将在服务会话(会话\0)中运行,而选美将在用户会话(会话\1)中运行。Plink使用了一些进程间通信,从您的问题看,它在不同的会话中无法工作。很可能里面有MMF通信,对象是没有前缀创建的,也就是说,它们变成了只会话(不是全局的)。您需要构建自定义版本的plink来解决这个问题。
发布于 2015-01-05 09:01:09
Pageant显式地允许只在同一Windows会话中运行的应用程序(PuTTY、PSFTP、PSCP、WinSCP、FileZilla)提供密钥。这显然是出于安全考虑,不允许同一台机器上的不同用户劫持另一个用户加载的私钥。甚至为了方便(具有讽刺意味的是),使您不会无意中使用其他用户的密钥(可能导致您的帐户由于无效的登录尝试而被锁定)。
另外,请注意,无论如何,Pageant并不打算用于自动化。对于自动化,使用-i命令行参数显式地使用私钥。
请参阅https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter3.html#using-cmdline-identity
这样的私钥必须未加密。请注意,如果有人获得对密钥的访问权限,则这会增加安全风险。您应该考虑将对不受保护的私钥文件的访问限制在只运行脚本的本地帐户(使用Windows文件系统权限 )。
https://stackoverflow.com/questions/11775808
复制相似问题