A pure Ruby implementation of the SSH2 client protocol for executing processes and managing connections to remote servers.
Net::SSH is a pure Ruby library that implements the SSH2 client protocol, allowing developers to programmatically execute commands, manage processes, and forward ports on remote servers via secure SSH connections. It solves the need for native SSH client functionality within Ruby applications without relying on system-level SSH binaries.
Ruby developers and DevOps engineers who need to automate remote server management, execute commands programmatically, or integrate SSH capabilities directly into their Ruby applications.
Developers choose Net::SSH for its pure Ruby implementation, which ensures portability and ease of integration into Ruby projects, along with its comprehensive feature set for secure remote operations and active maintenance focused on modern cryptographic standards.
Pure Ruby implementation of an SSH (protocol 2) client
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implemented entirely in Ruby, it avoids reliance on external SSH binaries, making it easy to bundle and deploy within Ruby applications without system dependencies.
Actively deprecates weak algorithms in favor of modern ones like curve25519 and chacha20-poly1305, enhancing security by default as detailed in the supported algorithms table.
Supports remote command execution, parallel process management, port forwarding, and SSH subsystems, enabling complex automation workflows from a single library.
With continuous integration, high test coverage, and active community support via Gitter, the project is regularly updated and well-documented.
Using modern algorithms like ed25519 or chacha20-poly1305 requires installing additional gems (e.g., `ed25519`, `rbnacl`), complicating setup and deployment.
Version 6.0 disabled weak algorithms by default, and v8.0 will remove them entirely, which may break compatibility with older servers without careful configuration.
As a pure-Ruby implementation, it can be slower than native C-based SSH clients, potentially affecting high-performance applications with frequent connections.