6 releases

0.2.4 Nov 9, 2024
0.2.3 Jul 22, 2024
0.2.2 Jun 4, 2023
0.2.1 Feb 9, 2023
0.1.0 Jun 15, 2022

#1239 in Network programming

Download history 23/week @ 2024-11-30 178/week @ 2024-12-07 29/week @ 2024-12-14 11/week @ 2024-12-21 77/week @ 2024-12-28 145/week @ 2025-01-04 129/week @ 2025-01-11 77/week @ 2025-01-18 137/week @ 2025-01-25 178/week @ 2025-02-01 138/week @ 2025-02-08 238/week @ 2025-02-15 136/week @ 2025-02-22 229/week @ 2025-03-01 173/week @ 2025-03-08 227/week @ 2025-03-15

796 downloads per month
Used in 2 crates (via rs1090)

Unlicense

365KB
7K SLoC

Makiko

Makiko is an asynchronous SSH client library in pure Rust.

Tutorial | API docs | Github | Crate

Features

  • SSH protocol 2
  • Authentication methods: publickey, password, none
  • Shell/exec sessions
  • Remote and local tunnels
  • Raw SSH channels (low-level API)
  • Ciphers: chacha20-poly1305, aes128-gcm, aes256-gcm, aes128-ctr, aes192-ctr, aes256-ctr, aes128-cbc*, aes192-cbc*, aes256-cbc*, 3des-cbc**
  • MACs: hmac-sha2-256-etm, hmac-sha2-512-etm, hmac-sha2-256, hmac-sha2-512, hmac-sha1-etm*, hmac-sha1*
  • Public key algorithms: ssh-ed25519, rsa-sha2-256, rsa-sha2-512, ecdsa-sha2-nistp256*, ecdsa-sha2-nistp384*, ssh-rsa*
  • Key exchange algorithms: curve25519-sha256, diffie-hellman-group14-sha1*, diffie-hellman-group14-sha256*, diffie-hellman-group16-sha512*, diffie-hellmann-group18-sha512*, diffie-hellman-group1-sha1**
  • Crypto from Rust Crypto
  • Use your own sockets, spawn your own tasks
  • Uses Tokio interfaces (but does not depend on the Tokio runtime)
  • Rust all the way down: no dependency on non-Rust libraries, direct or indirect

(* Algorithms marked with an asterisk are not enabled by default) (** Algorithms marked with two asterisks are only available with feature insecure-crypto)

Low-level

Makiko gives you a lot of control over the SSH connection, it is meant to be a building block for libraries and advanced applications.

Makiko and most of the cryptography crates from Rust Crypto that Makiko uses have not yet been audited by a trusted third party. Use at your own risk!

Contributing

Contributions are welcome! Please contact me (@honzasp) or open a pull request.

License

This software is released into the public domain. Please see UNLICENSE.

Dependencies

~15–24MB
~345K SLoC