Skip to content

honzasp/makiko

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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*
  • 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*
  • 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)

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.