An Elixir toolkit for performing structured tasks on one or more servers via SSH.
SSHKit is an Elixir toolkit for performing structured tasks on one or more servers, built on top of Erlang's SSH application. It solves the problem of automating server operations like command execution and file transfers in a repeatable, maintainable way. The library provides a clean DSL for configuring server contexts and executing remote operations.
Elixir developers building deployment tools, DevOps engineers automating server management tasks, and teams needing structured remote server automation in their Elixir applications.
Developers choose SSHKit for its Elixir-native API that fits functional programming patterns, its modular architecture allowing fine-grained control, and its foundation on the reliable Erlang SSH implementation. It's specifically designed for structured automation rather than just raw SSH connections.
An Elixir toolkit for performing tasks on one or more servers, built on top of Erlang’s SSH application.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows reusable configuration of hosts, paths, users, and environment variables in a clean DSL, as shown in the usage example for consistent automation tasks.
Core functionality is split into SSHKit, SSHKit.SSH, and SSHKit.SCP modules, enabling developers to use only what they need or extend with custom implementations.
Built on top of Erlang's battle-tested SSH application, ensuring stable and secure connections without relying on external SSH binaries.
Designed to fit Elixir's functional programming paradigm with a clean API, making it intuitive for Elixir developers compared to its Ruby inspiration.
Only supports SCP for file transfers, lacking SFTP or other modern protocols, which can be restrictive for workflows requiring advanced file operations.
Functional tests require Docker to run real SSH servers, adding setup overhead and potential compatibility issues for developers without Docker installed.
At version 0.1, it may undergo breaking changes and have a smaller ecosystem, as noted with separate packages for features like key handling.