russh
russh copied to clipboard
Rust SSH client & server library
Russh
Async (tokio) SSH2 client and server implementation.
This is a fork of Thrussh by Pierre-Étienne Meunier which adds:
:sparkles: = added in this fork
- More safety guarantees :sparkles:
forward-tcpip(remote port forwarding) :sparkles:- Ciphers:
[email protected][email protected]:sparkles:aes256-ctr:sparkles:aes192-ctr:sparkles:aes128-ctr:sparkles:
- Key exchanges:
[email protected]diffie-hellman-group1-sha1:sparkles:diffie-hellman-group14-sha1:sparkles:diffie-hellman-group14-sha256:sparkles:
- MACs:
hmac-sha1:sparkles:hmac-sha2-256:sparkles:hmac-sha2-512:sparkles:[email protected]:sparkles:[email protected]:sparkles:[email protected]:sparkles:
- Host keys:
ssh-ed25519rsa-sha2-256rsa-sha2-512ssh-rsa:sparkles:
- Dependency updates
- Handle openssh sshd keepalive channel requests :sparkles:
Safety
deny(clippy::unwrap_used)deny(clippy::expect_used)deny(clippy::indexing_slicing)deny(clippy::panic)- Exceptions are checked manually
Panics
- When the Rust allocator fails to allocate memory during a CryptoVec being resized.
Unsafe code
cryptovecusesunsafefor faster copying, initialization and binding to native API.
Contributors ✨
Thanks goes to these wonderful people (emoji key):
Mihir Samdarshi 📖 |
Connor Peet 💻 |
KVZN 💻 |
Adrian Müller (DTT) 💻 |
Simone Margaritelli 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!