A lightweight, asynchronous Rust library for SSH operations. Execute remote commands, transfer files via SCP, and manage interactive PTY sessions with an ergonomic builder API. Built on tokio and russh.
A complete toolkit for SSH operations with an ergonomic builder API designed for async Rust.
Built on tokio and russh for truly non-blocking SSH operations. Execute multiple commands concurrently without blocking your runtime.
Upload and download files securely with the same async API. Minimal code, maximum reliability for your file transfer needs.
Full terminal sessions with raw mode support, auto-resize, and mode detection for alt-buffer apps like vim and nano.
Full IPv6 support including link-local addresses with scope ID. Connect to devices on your local network without DNS configuration.
Password, key-based, certificate, and no-auth methods. simple_ssh automatically selects the right authentication based on your configuration.
Ready-to-use simple-ssh and simple-scp binaries. Terminal multiplexer support with 1x2, 2x1, and 2x2 layouts for managing multiple sessions.
Practical examples for common SSH operations.
# Add to your Cargo.toml [dependencies] simple_ssh = { git = "https://github.com/juliankahlert/simple_ssh" } tokio = { version = "1", features = ["full"] } anyhow = "1"
// Embed SSH in your TUI application let mut handle = ssh .pty_builder() .with_term("xterm-256color") .with_size(80, 24) .open() .await?; // Send input programmatically handle.write(b"ls -la\n").await?; // Read output while let Some(data) = handle.read().await { println!("Received: {:?}", data); }
Install via Cargo or use the pre-built CLI tools.