Makiko: an async SSH client library

I have just released version 0.2 of Makiko, an asynchronous SSH client library for Rust. Its goal is to become for SSH what hyper is for HTTP: a relatively low-level library intended to be a building block for higher-level libraries and advanced applications.

The library is still under development, but the basics are already in place. It supports most SSH features: public key and password authentication, shell sessions and tunnels, and SSH-related functionality like decoding private keys and working with known_hosts files.

Makiko already solves the problem that motivated me to write it, but I would like to continue working on it if there is community interest in yet another SSH library for Rust :slight_smile: Main areas for further development are:

  1. Documentation: better API docs, description of the internal implementation details, guides, examples.
  2. Security review
  3. Extensions to the SSH protocol (keyboard-interactive authentication? hostkeys-00@openssh.com?)
  4. SFTP

Disclaimer: I am not a security expert and the library has not underwent any review whatsoever (yet). Use at your own risk.

7 Likes

Thank you for sharing this. I've been toying with THRUSSH recently but found it to be a little...limited. Makiko seems like a slightly more complete library with more rounded capabilities. Are there any known issues with it or parts you don't especially like? I find that even once I "finish" a library, there is always some bit of it here or there that I think could be done better. What about a roadmap for future development of Makiko? Is there anything you would like to see added to it or anything you're working on related to it? I'm just starting to dig into Makiko, but my initial thoughts are positive. Again...thanks for sharing.

It's been a week with no response from the author here or through email. Is anyone else using Makiko? I've run into a few questions that the documentation doesn't address very well.

Sorry for the late reply, I was on a holiday and have just returned back online :slight_smile: The library should already be in a decent shape and it provides all features described in the readme, but of course there is always room for improvement. Most imporantly, Makiko needs more documentation (most imporantly, tutorial and examples), and there are also some features that could be added (such as sftp).

I put Makiko on hold for a while, because there did not seem to be much interest in my announcement. However, I'm happy that you are interested and I would like to continue working on it!

1 Like

No worries. I figured you might be on vacation. I've figured my way past most of my questions with Makiko already. It appears to be a well written library which makes learning it relatively easy. You and I are also corresponding in e-mail so I will continue the discussion there.

For anyone else considering Makiko, I HIGHLY recommend it.