Skip to content

JayanAXHF/filessh

Repository files navigation

FileSSH

Built With Ratatui crates.io GitHub Tag

A TUI-based file explorer for SSH servers, which allows you to browse and manage files on a remote server, edit them in-place, and recursively download directories with parallel directory traversal. It also has the ability to quickly spawn SSH sessions to paths on the remote server.

Dual-licensed under MIT or the UNLICENSE.

Made with VHS

Installation

Cargo

cargo install --locked filessh

Build from source

  1. Ensure you have Rust and Cargo installed. You can find installation instructions at rust-lang.org.
  2. Clone the repository:
    git clone https://github.com/your-username/filessh.git
    cd filessh
  3. Build the project:
    cargo build --release
    The executable will be located at target/release/filessh.

Todo

  • Add support for rsync and scp
  • Iron out bugs

Usage

filessh [OPTIONS] <HOST> <PATH>

Features

  1. Modify, delete and browse files on a remote server
  2. Recursively download directories with parallel directory traversal
  3. Quickly open SSH sessions to directories.

Arguments

  • <HOST>: The hostname or IP address of the SSH server.
  • <PATH>: The starting path to explore on the remote server.

Options

  • --port <PORT>: The port number for the SSH connection (default: 22).
  • --username <USERNAME>: The username for the SSH connection (default: "root").
  • -k, --private-key <PRIVATE_KEY>: The path to your SSH private key.
  • -o, --openssh-certificate <OPENSSH_CERTIFICATE>: The path to your OpenSSH certificate.

Example

./target/release/filessh \
    --username myuser \
    --private-key ~/.ssh/id_rsa \
    example.com \
    /home/myuser