8000 GitHub - Skullsneeze/sshop: An SSH connection helper that let's you hop to a server with ease
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Skullsneeze/sshop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐇 SSHop

A simple CLI tool to quickly SSH into (or hop to) configured client environments with interactive selection.

connection example


✨ Features

  • Interactive selection, adding, and updating of clients and environments via fzf and gum
  • Supports multiple environments per client (e.g., Staging, Production)
  • Reads client/server data from an easy to maintain JSON config file
  • Easily configurable and extensible
  • Easy Homebrew installation for Mac users

Installation

There are several ways to install SSHop.

🍎 Homebrew

You can install sshop via Homebrew from the custom tap:

brew tap skullsneeze/homebrew-tap https://github.com/Skullsneeze/homebrew-tools.git

And then:

brew install sshop

📦 Curl + install.sh

Alternativly you can use the provided install script:

curl -sSfL https://raw.githubusercontent.com/Skullsneeze/sshop/master/install.sh | bash

💡 Usage

Simply run:

sshop

This will prompt you to select a client and then an environment to SSH into.

Options:
  --add, -a             Add new client via interactive prompts
  --edit, -e            Edit existing client via fzf + interactive prompts
  --delete, -d          Delete existing client via fzf + interactive prompts
  --config, -c <file>   Use a specific clients.json config file
  --help, -h            Show this help message

⚙️ Configuration

By default, sshop reads the configuration file from:

~/.sshop/clients.json

You can override this by setting the JUMP_CONFIG environment variable or using the --config option:

sshop --config /path/to/your/clients.json

📋 Clients

Clients are managed in a json file using the following structure:

{
  "clients": [
    {
      "name": "Example Client",
      "servers": [
        {
          "name": "Production",
          "host": "prod.example.com",
          "port": 22,
          "username": "ubuntu"
        }
      ]
    },
    {
      "name": "Another Client",
      "servers": [
        {
          "name": "Test",
          "host": "test.sample.com",
          "port": 1234,
          "username": "test_sample"
        },
        {
          "name": "Production",
          "host": "sample.com",
          "port": 2222,
          "username": "root"
        }
      ]
    }
  ]
}

🛠️ Requirements

  • fzf (for interactive selection)
  • jq (for processing json clients/server list)
  • gum (for nice looking inputs)

Note that both Homebrew and install.sh will try to install these requirement for you.


🔭 Example Usage

Add servers to SSHop interactively:

add example

Edit servers in SSHop interactively:

edit example

Remove servers from SSHop interactively:

delete example

About

An SSH connection helper that let's you hop to a server with ease

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

0