.cargo | ||
.github/workflows | ||
core | ||
scripts | ||
src | ||
tests | ||
.gitignore | ||
BUILDING.md | ||
Cargo.lock | ||
Cargo.toml | ||
README.md |
distant
Binary to connect with a remote machine to edit files and run programs.
🚧 (Alpha stage software) This program is in rapid development and may break or change frequently! 🚧
Details
The distant
binary supplies both a server and client component as well as
a command to start a server and configure the local client to be able to
talk to the server.
- Asynchronous in nature, powered by
tokio
- Data is serialized to send across the wire via
CBOR
- Encryption & authentication are handled via
orion
- XChaCha20Poly1305 for an authenticated encryption scheme
- BLAKE2b-256 in keyed mode for a second authentication
- Elliptic Curve Diffie-Hellman (ECDH) for key exchange
Installation
Prebuilt Binaries
If you would like a pre-built binary, check out the releases section.
Building from Source
If you have cargo
installed, you can
directly download and build the source via:
cargo install distant
Alternatively, you can clone this repository and build from source following the build guide.
Examples
Launch a remote instance of distant
by SSHing into another machine and
starting the distant
executable:
# Connects to my.example.com on port 22 via SSH to start a new session
distant launch my.example.com
# After the session is established, you can perform different operations
# on the remote machine via `distant action {command} [args]`
distant action copy path/to/file new/path/to/file
distant action run -- echo 'Hello, this is from the other side'
License
This project is licensed under either of
Apache License, Version 2.0, (LICENSE-APACHE or apache-license) MIT license (LICENSE-MIT or mit-license) at your option.