Hey,
I’m pleased to announce the release 0.3.0 of awa-ssh. This is a pure implementation of the SSH protocol in OCaml. It started out as a server implementation by @haesbaert, and was then further developed by @hannes (client), Pierre Alain (sshfs), @reynir, @dinosaure
These days, it is both a server and a client implementation, and is used in ocaml-git to fetch git repositories from ssh remotes.
The initial release is a few years back (see [ANN] First release of awa-ssh), the code is even older
The highlights since the initial release include:
- support RSA-SHA2 signature algorithms (October 2021)
- support ED25519 (October 2021)
- SSH server subsystem in MirageOS (January 2022)
- ECDSA support of NIST curves (March 2023)
- client: password authentication (previously, only key authentication was supported) (March 2023)
- add Pty/Set_env/Start_shell events (March 2023)
- server: handle unknown public keys (June 2023)
- server: fix rekey (leading to out of memory) (June 2023)
- server: window change events (June 2023)
- server: implement ext-info and server-sig-algs extensions (June 2023)
One example application is a chat system with trust on first use banawa-chat, as described in this article – join us for discussion at ssh [-i path/to/key_ed25519] myusername@chat.reyn.ir
.
The password authentication allows awa to be used for network infrastructure monitoring and management (which usually do not support key-based authentication).
There’s also a work-in-progress IRC client as MirageOS unikernel catty, which uses lwd for user interaction.
There’s also a sshfs unikernel.
Happy hacking,
Hannes