Low-level Tokio SSH2 client and server implementation.
Crypto backends: enable at least one of the
aws-lc-rsorringfeatures.russhfails to compile when both are disabled because a crypto backend is required.
Examples: simple client, interactive PTY client, server, SFTP client, SFTP server.
This is a fork of Thrussh by Pierre-Γtienne Meunier.
β¨ = added in Russh
- More panic safety β¨
- async traits β¨
direct-tcpip(local port forwarding)forward-tcpip(remote port forwarding) β¨direct-streamlocal(local UNIX socket forwarding, client only) β¨forward-streamlocal(remote UNIX socket forwarding) β¨- Ciphers:
[email protected][email protected]β¨[email protected]β¨aes256-ctrβ¨aes192-ctrβ¨aes128-ctrβ¨aes256-cbcβ¨aes192-cbcβ¨aes128-cbcβ¨3des-cbcβ¨
- Key exchanges:
[email protected]diffie-hellman-group-sha1(GEX) β¨diffie-hellman-group1-sha1β¨diffie-hellman-group14-sha1β¨diffie-hellman-group-sha256(GEX) β¨diffie-hellman-group14-sha256β¨diffie-hellman-group16-sha512β¨ecdh-sha2-nistp256β¨ecdh-sha2-nistp384β¨ecdh-sha2-nistp521β¨
- MACs:
hmac-sha1β¨hmac-sha2-256β¨hmac-sha2-512β¨[email protected]β¨[email protected]β¨[email protected]β¨
- Host keys and public key auth:
ssh-ed25519rsa-sha2-256rsa-sha2-512ssh-rsaβ¨ecdsa-sha2-nistp256β¨ecdsa-sha2-nistp384β¨ecdsa-sha2-nistp521β¨
- Authentication methods:
passwordpublickeykeyboard-interactivenone- OpenSSH certificates β¨
- Dependency updates
- OpenSSH keepalive request handling β¨
- OpenSSH agent forwarding channels β¨
- OpenSSH
server-sig-algsextension β¨ - PPK key format β¨
- Pageant support β¨
AsyncRead/AsyncWrite-able channels β¨
deny(clippy::unwrap_used)deny(clippy::expect_used)deny(clippy::indexing_slicing)deny(clippy::panic)- Exceptions are checked manually
- When the Rust allocator fails to allocate memory during a CryptoVec being resized.
- When
mlock/munlockfails to protect sensitive data in memory.
cryptovecusesunsafefor faster copying, initialization and binding to native API.
- russh-sftp - server-side and client-side SFTP subsystem support for
russh- seerussh/examples/sftp_server.rsorrussh/examples/sftp_client.rs. - async-ssh2-tokio - simple high-level API for running commands over SSH.
- HexPatch - A binary patcher and editor written in Rust with terminal user interface (TUI).
- Uses
russh::clientandrussh_sftp::clientto allow remote editing of files.
- Uses
- kartoffels - A game where you're given a potato and your job is to implement a firmware for it
- Uses
russh:serverto deliver the game, usingratatuias the rendering engine.
- Uses
- kty - The terminal for Kubernetes.
- Uses
russh::serverto deliver theratatuibased TUI andrussh_sftp::serverto providescpbased file management.
- Uses
- lapdev - Self-Hosted Remote Dev Environment
- Uses
russh::serverto construct a proxy into your development environment.
- Uses
- medusa - A fast and secure multi protocol honeypot.
- Uses
russh::serverto be the basis of the honeypot.
- Uses
- rebels-in-the-sky - P2P terminal game about spacepirates playing basketball across the galaxy
- Uses
russh::serverto deliver the game, usingratatuias the rendering engine.
- Uses
- warpgate - Smart SSH, HTTPS and MySQL bastion that requires no additional client-side software
- Uses
russh::serverin addition torussh::clientas part of the smart SSH functionality.
- Uses
- Devolutions Gateway - Establish a secure entry point for internal or external segmented networks that require authorized just-in-time (JIT) access.
- Uses
russh::clientfor the web-based SSH client of the standalone web application.
- Uses
- Sandhole - Expose HTTP/SSH/TCP services through SSH port forwarding. A reverse proxy that just works with an OpenSSH client.
- Uses
russh::serverfor reverse forwarding connections, local forwarding tunnels, and theratatuibased admin interface.
- Uses
- Motor OS - A new Rust-based operating system for VMs.
- Uses
russh::serveras the base for its own SSH Server.
- Uses
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!