[ANN[ awa-ssh release 0.3


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 :wink:

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,