我正在尝试使用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
,但其余部分似乎没有变化。
答案 0 :(得分:2)
从未使用此库,但查看openSession
的文档:
打开SSH会话。下一步是进行身份验证。
同样来自execCommand
说明:
在对会话发送命令之前,应该对其进行身份验证。
我认为您的代码在成功进行身份验证之前调用execCommand
会破坏约定。不确定这是问题,但看起来你需要解决这个问题。