Hello Guilers!
I'm pleased to announce Guile-SSH 0.16.2:
https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.16.2
As usual, this release tag is signed with my GPG key[1].
This release fixes errors in tests related to libssh 0.10.
Guile-SSH 0.16.2 API should be backward-compatible with Guile-SSH
0.16.1 and 0.16.0.
Also now you can read the Guile-SSH documentation online here:
Or here (through the Yggdrasil[2] network):
Please note that:
1. The Yggdrasil access is experimental and there's no guarantees; the
actual Yggdrasil IPv6 address can be found on the main page of the
site:
2. The site itself is self-hosted so sometimes it is a bit flacky.
* What is Guile-SSH?
Guile-SSH is a library that provides access to the SSH protocol[3] for
programs written in GNU Guile interpreter. It is built upon the
libssh[4] library.
Currently Guile-SSH provides the following features:
- The API that is sufficient for building of standalone SSH clients and
servers, or for embedding client/server functionality in your lispy Scheme
applications.
- Several authentication methods are supported, including password
authentication, public key and SSH agent authentication methods.
- Key management procedures: you can make key pairs, read keys from files,
get key hashes, get public keys from private keys etc. DSS, RSA, RSA1 and
ECDSA (by means of OpenSSL) are supported.
- Port forwarding procedures and high-level API for creating of SSH tunnels.
- Distributed forms ('dist-map', 'distribute', ...) that allow to spread the
evaluation of Scheme code between remote hosts. Or you can just connect
to a remote REPL from Scheme using 'with-ssh' procedure and evaluate some
expressions. No special server needed on the remote side, just an SSH
daemon and GNU Guile installed!
- SFTP client API allows you to read and write remote files, or do directory
traversal over the SSH protocol right from the Scheme code.
- Remote popen API that allows you to make either input, output or
bidirectional pipes to remote processes.
- Detailed documentation in Texinfo format with examples included, even more
examples in 'examples' directory.
- Procedures for interaction with SSH agents.
* The list of user-visible changes
Here's the list of user-visible changes between 0.16.0 and 0.16.2 (an
excerpt from NEWS file):
--8<---------------cut here---------------start------------->8---
* Changes in version 0.16.2 (2023-01-02)
** Bugfix in test "string->public-key, ECDSA"
The test used to explicitly compare libssh version with "9" so it would always
fail on platforms with libssh 0.10. Now the test does numerical comparison
and uses "ecdsa-p256" on platforms that have libssh 0.9 or later version.
Reported by Vagrant Cascadian, here:
* Changes in version 0.16.1 (2022-12-31)
** Disable the tests that require DSA algorithm by default
When DSA support is disabled in libssh (which is the default state since
libssh 0.10) all DSA-related Guile-SSH procedures will fail. Now Guile-SSH
disables by default all the tests that are require the DSA algorithm support
by default.
Although those changes do not affect the Guile-SSH API directly, users should
be aware that DSA support will be removed altogether in the next major libssh
release.
Reported by Vagrant Cascadian, here:
** Add '--enable-dsa' Autoconf option
'configure.ac' now has '--enable-dsa' option that allows to enable DSA public
key algorithm support in Guile-SSH.
** (ssh version): 'dsa-support?': New procedure
** guix.scm: Use libssh 0.10.0
The development GNU Guix environment now uses libssh 0.10.0.
--8<---------------cut here---------------end--------------->8---
Many thanks to all the people who helped me with bug reports, pull
requests and other hints. I added all contributors to "AUTHORS" and
"THANKS" files -- please let me know if I forgot to thank someone or
if there any typos.
- Artyom
--
Artyom "avp" Poptsov
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F