Did you know ... Search Documentation:
Packs (add-ons) for SWI-Prolog

Package "libssh"

Title:Provide an embedded SSH server
Rating:Not rated. Create the first rating!
Latest version:0.9.1
SHA1 sum:dc33b8101e43d0246cca3dba903e6818edd76608
Author:Jan Wielemaker <jan@swi-prolog.org>
Home page:https://github.com/JanWielemaker/libssh
Download URL:https://github.com/JanWielemaker/libssh/archive/*.zip

Reviews

No reviews. Create the first review!.

Details by download location

VersionSHA1#DownloadsURL
0.8.1e70d2910373ae9f5482685655c7b3ed3a49f1c772https://github.com/JanWielemaker/libssh/archive/V0.8.1.zip
0.9.0c63f9eba1c00f19be5c40c197a7b119d83048bb91https://github.com/JanWielemaker/libssh/archive/V0.9.0.zip
0.9.1dc33b8101e43d0246cca3dba903e6818edd766086https://github.com/JanWielemaker/libssh/archive/V0.9.1.zip

A SWI-Prolog embedded SSH server

This pack provides an SSH server based on the libssh library. On a connection the server creates two threads, one pure C thread that is responsible for the communication and a Prolog thread that connects to the created pseudo terminal and runs the normal Prolog toplevel prolog/0. If possible, i.e., if library(libedit) is used for command line editing), a command line editor is activated inside the thread providing the usual editing and history.

Authentication

The library currently provides SSH public key and password authentication. The file examples/password.pl illustrates how password authentication can be set up. By default, the system approves the keys from ~/.ssh/authorized_keys, which allows anyone with a key that grants access to this acount to also access the Prolog server.

By default the server binds only to the localhost interface. Public access requires the option bind_address(*).

Host keys

SSH relies on a host key to guarantee you are always connecting to the same server. By default these keys are found in etc/ssh. The default configuration creates a set of keys if these keys do not exist using the following commands

mkdir -p etc/ssh
ssh-keygen -A -f .

Installation

The server may be installed using

?- pack_install(libssh).

Prerequisites

  • CMake and the common build essentials
  • libssh development files:
    • Ubuntu: sudo apt install libshh-dev
    • Fedora: sudo dnf install libshh-devel
    • MacOS: sudo port install libssh

Contents of pack "libssh"

Pack contains 11 files holding a total of 52.8K bytes.