2013-04-24 128 views
1

任何人都可以指出我如何編寫簡單的ssh應用程序來檢查某些憑據是否通過SSH服務器?Haskell SSH連接

我在尋找類似:

sshAuthCheck :: Int -> String -> String -> IO Bool 

其中Int一些端口,String是一個用戶名,並String是一個密碼。

任何幫助將不勝感激!

+0

我知道darcsden代碼做了一些SSH的東西。它的來源位於http://darcsden.com/alex/darcsden,但我不知道任何更具體的內容。 – Carl 2013-04-24 20:47:56

+0

我可以在Hackage上找到最好的[綁定到libssh2](http://hackage.haskell.org/package/libssh2),但它似乎只支持公鑰認證,而不支持密碼認證。 – dave4420 2013-04-24 21:11:09

+0

darcsden.com是一個過期的域名 – rapto 2017-03-29 08:59:16

回答

2

UPDATE 2017年4月3日

由於下darcsden.com已被刪除的例子,這裏是另一種方式來實現同樣的事情:

步驟如下:

session <- openSession hostname port path_to_known_hosts 
auth_session <- authenticateWithPasswordSource session username password 
result <- runErrorT auth_session 
case result of 
    Left simple_ssh_error -> ... {- SimpleSSHError -} 
    Right session -> ... {- Session -} 
  • 代碼沒有測試
  • 有更好的方法來處理這個類型的錯誤。 runEitherT僅用於示例目的。

原來的答覆:

該庫可:

http://hackage.haskell.org/package/ssh

指向卡爾提到的一個例子:

http://darcsden.com/alex/darcsden/browse/src/SSHServer.hs