Russh
低级Tokio SSH2客户端和服务器实现。
示例:简单客户端、交互式PTY客户端、服务器、SFTP客户端、SFTP服务器。
这是Pierre-Étienne Meunier的Thrussh的一个分支。
✨ = Russh中新增的功能
- 更高的panic安全性 ✨
- 支持
async_trait
✨ direct-tcpip
(本地端口转发)forward-tcpip
(远程端口转发)✨direct-streamlocal
(本地UNIX套接字转发,仅限客户端)✨- 加密算法:
chacha20-poly1305@openssh.com
aes256-gcm@openssh.com
✨aes256-ctr
✨aes192-ctr
✨aes128-ctr
✨aes256-cbc
✨aes192-cbc
✨aes128-cbc
✨3des-cbc
✨
- 密钥交换:
curve25519-sha256@libssh.org
diffie-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
✨
- 主机密钥和公钥认证:
ssh-ed25519
rsa-sha2-256
rsa-sha2-512
ssh-rsa
✨ecdsa-sha2-nistp256
✨ecdsa-sha2-nistp384
✨ecdsa-sha2-nistp521
✨
- 认证方法:
password
publickey
keyboard-interactive
none
- OpenSSH证书(仅限客户端 ✨)
- 依赖项更新
- OpenSSH保活请求处理 ✨
- OpenSSH代理转发通道 ✨
- OpenSSH
server-sig-algs
扩展 ✨ openssl
依赖是可选的 ✨
安全性
deny(clippy::unwrap_used)
deny(clippy::expect_used)
deny(clippy::indexing_slicing)
deny(clippy::panic)
- 手动检查异常
崩溃
- 当Rust分配器在调整CryptoVec大小时无法分配内存。
不安全代码
cryptovec
使用unsafe
以实现更快的复制、初始化和绑定到原生API。
生态系统
- russh-sftp - 为
russh
提供服务器端和客户端SFTP子系统支持 - 参见russh/examples/sftp_server.rs
或russh/examples/sftp_client.rs
。 - async-ssh2-tokio - 用于通过SSH运行命令的简单高级API。
贡献者 ✨
感谢这些优秀的人(表情符号说明):
本项目遵循all-contributors规范。欢迎任何形式的贡献!