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.2
SHA1 sum:1621dde9edbcc1e695a70896de39a82bc5efce45
Author:Jan Wielemaker <jan@swi-prolog.org>
Home page:https://github.com/JanWielemaker/libssh
Download URL:https://github.com/JanWielemaker/libssh/archive/*.zip


No reviews. Create the first review!.

Details by download location


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.


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 .


The server may be installed using

?- pack_install(libssh).


  • 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 53.8K bytes.