在Windows服务中调用时ssh失败

Rom*_*man 4 ssh windows-services

我正在调用cmd调用ssh与Linux机器相互通信的文件.我使用.NET Process类来实现这一目标.但是在Windows服务调用中调用失败时出现以下错误:

C:\test>ssh -o StrictHostKeyChecking=no -i private_linux_key user@host "ls" 
      0 [main] ssh 9496 fhandler_base::dup: dup(some disk file) failed, handle 0, Win32 error 6
dup() in/out/err failed
Run Code Online (Sandbox Code Playgroud)

当我作为控制台应用程序启动应用程序时一切正常

这种失败可能是什么原因以及如何解决这个问题?

编辑所有Windows服务必须做 - 以某种方式杀死Linux机器上的预定义守护进程

谢谢

编辑

类似的问题在那里描述:http://www.velocityreviews.com/forums/t714254-executing-commands-from-windows-service.html

Rom*_*man 6

也许这篇文章将节省一些时间来解决类似的问题.我终于找到了对我有用的解决方案.这是ssh -n关键

而不是

ssh -o StrictHostKeyChecking=no -i private_linux_key user@host "ls"
Run Code Online (Sandbox Code Playgroud)

我用过

ssh -n -o StrictHostKeyChecking=no -i private_linux_key user@host "ls"
Run Code Online (Sandbox Code Playgroud)

它仍然看起来像一个魔术,但它的工作原理!