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
也许这篇文章将节省一些时间来解决类似的问题.我终于找到了对我有用的解决方案.这是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)
它仍然看起来像一个魔术,但它的工作原理!