2013-04-24 3 views
1

Может ли кто-нибудь указать мне в общем направлении, как написать простое приложение ssh, которое проверяет, проходят ли определенные учетные данные через SSH-сервер?Haskell SSH Connection

Я ищу что-то вроде:

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

где Int некоторый порт, String это имя пользователя и String это пароль.

Любая помощь была бы высоко оценена!

+0

Я знаю darcsden код делает некоторые SSH. Его источник находится по адресу http://darcsden.com/alex/darcsden, но я не знаю ничего более конкретного. – Carl

+0

Лучшее, что я могу найти в Hackage, - [привязки к libssh2] (http://hackage.haskell.org/package/libssh2), но, похоже, поддерживает только аутентификацию с открытым ключом, а не проверку подлинности с помощью пароля. – dave4420

+0

darcsden.com - это истекший домен – rapto

ответ

2

UPDATE 2017-04-03

Так, например, под 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