simplessh库在执行命令时挂起

时间:2016-07-08 12:50:30

标签: haskell ssh

我正在尝试使用simplessh库通过SSH运行一系列命令(实际上,要学习一些Haskell)。它似乎没问题,但是它挂在了这段代码中的第二个True 1.0.0.0

runSimpleSSH

我的Haskell代码有问题,还是我使用的库错了?我确信有人可以根据图书馆公开的类型来判断。

PS:我实际上使用patched version of the library,但不允许module Main where import Network.SSH.Client.SimpleSSH main :: IO () main = do s <- runSimpleSSH $ openSession' "localhost" 22 Nothing case s of Left e -> print e Right s -> do r <- runSimpleSSH $ execCommand s "ls" -- hangs here case r of Left e -> print e Right (Result { resultOut=resultOut, resultErr=resultErr, resultExit=resultExit }) -> print resultExit ,但其余部分似乎没有变化。

1 个答案:

答案 0 :(得分:2)

从未使用此库,但查看openSession的文档:

  

打开SSH会话。下一步是进行身份验证。

同样来自execCommand说明:

  

在对会话发送命令之前,应该对其进行身份验证。

我认为您的代码在成功进行身份验证之前调用execCommand会破坏约定。不确定这是问题,但看起来你需要解决这个问题。