首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows服务中的Plink找不到Pageant

Windows服务中的Plink找不到Pageant
EN

Stack Overflow用户
提问于 2012-08-02 10:42:34
回答 3查看 5.1K关注 0票数 4

我有一个窗口服务,它将使用plink.exe进行SSH连接,我发现Plink找不到正在运行的Pageant。

以下是我迄今所采取的步骤。

  1. 安装Windows服务以作为特定用户运行
  2. 在启动Windows之前,我以用户身份登录,并使用PuTTY生成的密钥启动Pageant。
  3. 然后启动Windows服务(但我无法使它工作,因为Plink无法找到Pageant和服务器回复,因为没有支持的身份验证方法可用)。

注意:如果我将Windows服务作为控制台应用程序与该用户一起运行,那么一切都正常。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-07 01:56:52

作为@Eugene 指出,它是会话0隔离

我设法通过不使用代理来解决这个问题,但直接将私钥和密码传递给plink.exe。通过这样做,我可以不使用pageant就可以运行。

无代理启动plink.exe

代码语言:javascript
复制
plink.exe -noagent -i private_key.ppk -pw mypassword -P 1234 user@host.com
票数 2
EN

Stack Overflow用户

发布于 2012-08-02 11:17:03

PLink将在服务会话(会话\0)中运行,而选美将在用户会话(会话\1)中运行。Plink使用了一些进程间通信,从您的问题看,它在不同的会话中无法工作。很可能里面有MMF通信,对象是没有前缀创建的,也就是说,它们变成了只会话(不是全局的)。您需要构建自定义版本的plink来解决这个问题。

票数 4
EN

Stack Overflow用户

发布于 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文件系统权限 )。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11775808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档