russh (0.46.0)
Published 2026-03-26 11:02:30 +00:00 by siennathesane
Installation
[registry]
default = "gitea"
[registries.gitea]
index = "sparse+ " # Sparse index
# index = " " # Git
[net]
git-fetch-with-cli = truecargo add russh@0.46.0About this package
A client and server SSH library.
Russh
Low-level Tokio SSH2 client and server implementation.
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_traitsupport ✨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:
chacha20-poly1305@openssh.comaes256-gcm@openssh.com✨aes256-ctr✨aes192-ctr✨aes128-ctr✨aes256-cbc✨aes192-cbc✨aes128-cbc✨3des-cbc✨
- Key exchanges:
curve25519-sha256@libssh.orgdiffie-hellman-group1-sha1✨diffie-hellman-group14-sha1✨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✨hmac-sha1-etm@openssh.com✨hmac-sha2-256-etm@openssh.com✨hmac-sha2-512-etm@openssh.com✨
- 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 (client only ✨)
- Dependency updates
- OpenSSH keepalive request handling ✨
- OpenSSH agent forwarding channels ✨
- OpenSSH
server-sig-algsextension ✨ openssldependency is optional ✨
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.
- When
mlock/munlockfails to protect sensitive data in memory.
Unsafe code
cryptovecusesunsafefor faster copying, initialization and binding to native API.
Ecosystem
- 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.
Adopters
- 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 honyepot.
- 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
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
Dependencies
| ID | Version |
|---|---|
| aes | ^0.8 |
| aes-gcm | ^0.10 |
| async-trait | ^0.1 |
| bitflags | ^2.0 |
| byteorder | ^1.4 |
| cbc | ^0.1 |
| chacha20 | ^0.9 |
| ctr | ^0.9 |
| curve25519-dalek | ^4.1.3 |
| des | ^0.8.1 |
| digest | ^0.10 |
| elliptic-curve | ^0.13 |
| flate2 | ^1.0 |
| futures | ^0.3 |
| generic-array | ^0.14 |
| hex-literal | ^0.4 |
| hmac | ^0.12 |
| log | ^0.4 |
| num-bigint | ^0.4 |
| once_cell | ^1.13 |
| p256 | ^0.13 |
| p384 | ^0.13 |
| p521 | ^0.13 |
| poly1305 | ^0.8 |
| rand | ^0.8 |
| rand_core | ^0.6.4 |
| russh-cryptovec | ^0.7.0 |
| russh-keys | ^0.46.0 |
| russh-util | ^0.46.0 |
| sha1 | ^0.10 |
| sha2 | ^0.10 |
| ssh-encoding | ^0.2 |
| ssh-key | ^0.6 |
| subtle | ^2.4 |
| thiserror | ^1.0 |
| tokio | ^1.17.0 |
| anyhow | ^1.0 |
| clap | ^3.2 |
| env_logger | ^0.11 |
| rand | ^0.8.5 |
| ratatui | ^0.26.0 |
| shell-escape | ^0.1 |
| termion | ^2 |
| tokio | ^1.17.0 |
| tokio-fd | ^0.3 |
| openssl | ^0.10 |
| russh-sftp | ^2.0.5 |
| tokio | ^1.17.0 |
Keywords
ssh
Details
2026-03-26 11:02:30 +00:00
Assets (1)
Versions (1)
View all
Cargo
0
Pierre-Étienne Meunier <pe@pijul.org>
Apache-2.0
115 KiB
russh-0.46.0.crate
115 KiB
0.46.0
2026-03-26