simlock
병렬 코딩 에이전트가 동일 시뮬레이터를 놓고 충돌하지 않도록 제어 평면 제공
Rust 기반 SSH 클라이언트 및 서버 라이브러리
Rust SSH client & server library
개발 도구Rust · ShellGitHub @Eugeny직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
설치형 프로젝트는 배포 도메인 없이도 확인할 수 있습니다. 개인 저장소는 GitHub 로그인으로, 조직 저장소는 위의 저장소 확인 파일로 직접 확인해 주세요.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A low-level, async SSH 2.0 client and server library for Rust / Tokio.
Russh gives you direct access to the SSH protocol: channels, authentication, key exchange, port and socket forwarding. It is written in safe Rust, uses async traits, and supports a broad range of algorithms for wide scale interoperability with real-world servers and clients.
AsyncRead/AsyncWrite channelsunwrap/expect and unchecked indexing are denied by defaultAdd russh to your Cargo.toml, choosing a crypto backend feature (see below):
[dependencies]
russh = { version = "0.63", features = ["aws-lc-rs"] }
tokio = { version = "1", features = ["full"] }
Then have a look at the examples:
API documentation is on docs.rs
Russh requires exactly one crypto backend. Enable the aws-lc-rs or ring crate feature.
# aws-lc-rs (default in most setups)
russh = { version = "0.63", features = ["aws-lc-rs"] }
# or ring (keep `flate2` and `rsa` when disabling default features)
russh = { version = "0.63", default-features = false, features = ["ring", "flate2", "rsa"] }
Russh aims for broad interoperability, so it supports both algorithms currently considered safe and a set of older ones that allow connections to older switches etc. Legacy algorithms are opt in.
Recommended
mlkem768x25519-sha256 (post-quantum hybrid)curve25519-sha256, [email protected]diffie-hellman-group-exchange-sha256 (GEX)diffie-hellman-group18-sha512, diffie-hellman-group17-sha512, diffie-hellman-group16-sha512, diffie-hellman-group15-sha512diffie-hellman-group14-sha256Legacy
ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521diffie-hellman-group14-sha1diffie-hellman-group1-sha1diffie-hellman-group-exchange-sha1 (GEX)Recommended
[email protected][email protected], [email protected]aes256-ctr, aes192-ctr, aes128-ctrLegacy
aes256-cbc, aes192-cbc, aes128-cbc3des-cbc (requires the des crate feature)Recommended
[email protected], [email protected]hmac-sha2-256, hmac-sha2-512Legacy
[email protected]hmac-sha1nonezlib, [email protected] (requires the flate2 crate feature, on by default)Recommended
ssh-ed25519ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521rsa-sha2-256, rsa-sha2-512ssh-rsa (SHA-1)publickeypasswordkeyboard-interactivenonedirect-tcpip)forward-tcpip)direct-streamlocal, client only)forward-streamlocal)AsyncRead / AsyncWrite-able channelsserver-sig-algs extensionRussh is built to withstand malicious/misbehaving peers.
deny(clippy::unwrap_used)deny(clippy::expect_used)deny(clippy::indexing_slicing)deny(clippy::panic)Exceptions are reviewed and justified manually.
cryptovec uses unsafe for faster copying, initialization, and binding to native APIs.russh; see russh/examples/sftp_server.rs or russh/examples/sftp_client.rs.russh::client and russh_sftp::client to allow remote editing of files.russh::server to deliver the game, using ratatui as the rendering engine.russh::server to deliver the ratatui based TUI and russh_sftp::server to provide scp based file management.russh::server to construct a proxy into your development environment.russh::server to be the basis of the honeypot.russh::server to deliver the game, using ratatui as the rendering engine.russh::server in addition to russh::client as part of the smart SSH functionality.Russh began as a fork of Thrussh by Pierre-Étienne Meunier, originally extended to provide the SSH backend for Warpgate.
It has since been substantially reworked, and is maintained independently. Russh prioritises safety-by-default and broad algorithm interoperability. Thanks to Pierre-Étienne and the Thrussh contributors for the original foundation.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
russh::client for the web-based SSH client of the standalone web application.russh::server for reverse forwarding connections, local forwarding tunnels, and the ratatui based admin interface.russh::server as the base for its own SSH Server.russh::client and russh_sftp::client to access the virtual machine instances.russh::client for SSH transport, authentication, and interactive PTY sessions.russh::client to implement an async SFTP provider for remote file management.russh::server to allow Git operations over SSH.russh::server for efficiently implementing SSH shells and SFTP file management.russh::client for connections, jump hosts, SOCKS/HTTP/command proxies and SFTP.russh::client as the SSH transport implementation behind Nitro Modules bindings.