Skip to content

Scriptable SSH through OpenSSH in Rust

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

openssh-rust/openssh

Repository files navigation

Crates.io Documentation Codecov

Scriptable SSH through OpenSSH.

This crate wraps the OpenSSH remote login client (ssh on most machines), and provides a convenient mechanism for running commands on remote hosts. Since all commands are executed through the ssh command, all your existing configuration (e.g., in .ssh/config) should continue to work as expected.

The library's API is modeled closely after that of [std::process::Command], since ssh also attempts to make the remote process seem as much as possible like a local command.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Run integration tests

Requires docker and cargo-hack.

Check getting Docker guide on how to install docker, and use cargo install cargo-hack to install cargo-hack.

./run_ci_tests.sh

It will create a container which runs sshd, setup ssh-agent, and environment variables that are required to run the integration tests.

It will also test different combination of feature flags to ensure they all compile without error.

Build documentation

Requires nightly cargo.

To install nightly cargo, run rustup toolchain install nightly.

./build_doc.sh