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.