#ssh #ssh-config #host #config-file #list #goto #configured

app rgoto

rgoto is a Rust-based command-line tool that reads your SSH configuration file (~/.ssh/config), presents a list of configured hosts, and allows you to select one to SSH into interactively. This work is partially inspired by goto. Also, this project borrows and modifies some codes from cliclack to support hjkl and index based navigation.

1 unstable release

0.1.0 Oct 12, 2024

#220 in Configuration

Download history 130/week @ 2024-10-06 54/week @ 2024-10-13 2/week @ 2024-10-20

186 downloads per month

MIT license

56KB
1K SLoC

Rusty GOTO (Rgoto)

rgoto is a Rust-based command-line tool that reads your SSH configuration file (~/.ssh/config), presents a list of configured hosts, and allows you to select one to SSH into interactively. This work is partially inspired by goto. Also, this project borrows and modifies some codes from cliclack to support hjkl and index based navigation.

Features

  • Automatically detects and parses your ~/.ssh/config file.
  • Displays a list of configured SSH hosts for easy selection.
  • Supports reading usernames specified in the SSH config file.
  • Uses the system's ssh command to establish an interactive SSH session.
  • (New) now supports latency checks! Just select the first option and hit Enter.

Installation

  • One-Liner

    cargo install --git https://github.com/JiwanChung/rgoto --locked
    
  1. Ensure you have Rust installed. You can install Rust using rustup.

  2. Build the project:

    cargo build --release
    
  3. Move the executable to appropriate places pointed by $PATH.

    cp ./target/release/rgoto $HOME/.local/bin
    
  4. Run the project:

    rgoto
    
  5. Follow the prompts to select a host from your SSH config and connect.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a pull request or open an issue for any bugs or feature requests.

Dependencies

~7–15MB
~184K SLoC