2.0.0 • Published 10 months ago

@jay2503/ezssh v2.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

ezssh - Easy SSH Connection Manager

ezssh is a simple Node.js CLI tool that allows you to manage and quickly connect to SSH servers using an interactive menu.

✨ Features

  • šŸ“ Uses a JSON file (~/.ezssh.json) to store SSH connection details.
  • šŸ” Lists available SSH connections in an interactive menu.
  • ā¬†ļøā¬‡ļø Allows selecting a connection using arrow keys.
  • šŸ”‘ Supports private key authentication (.pem files).
  • šŸ–„ļø Automatically launches SSH upon selection.
  • šŸ”„ Supports SSH tunnels for secure database and service connections.
  • šŸ“” Interactive menu for tunnels to quickly establish port forwarding.

šŸ“„ Installation

npm install -g @jay2503/ezssh

šŸ› ļø Setup

1ļøāƒ£ Create Configuration File

Create a file named ~/.ezssh.json in your home directory and add your SSH connections and tunnels:

{
  "connections": [
    {
      "name": "My Server Name",
      "user": "ubuntu",
      "host": "222.111.000.000",
      "authKey": "~/Projects/ProjectName/keys/connection.pem"
    }
  ],
  "tunnels": [
    {
      "name": "Database Tunnel",
      "localPort": 6000,
      "remoteHost": "database.example.com",
      "remotePort": 3306,
      "authKey": "~/Projects/ProjectName/keys/db-tunnel.pem",
      "user": "ec2-user",
      "host": "222.000.111.000"
    }
  ]
}

šŸ”¹ Ensure your private key files have the correct permissions:

chmod 400 ~/Projects/ProjectName/keys/connection.pem
chmod 400 ~/Projects/ProjectName/keys/db-tunnel.pem

šŸš€ Usage

Connect to an SSH Server

ezssh

This will display an interactive menu listing all configured SSH connections. Select one, and it will automatically connect using SSH.

Establish an SSH Tunnel

ezssh tunnels

This will display an interactive menu listing all configured SSH tunnels. Select one, and it will automatically establish the tunnel.


šŸ“Œ Example Output

SSH Connection

? Select an SSH connection:
  āÆ My Server Name (ubuntu@222.111.000.000)

Connecting to My Server Name...
Welcome to Ubuntu 22.04 LTS

SSH Tunnel

? Select an SSH tunnel:
  āÆ Database Tunnel (localhost:6000 → database.example.com:3306)

Creating tunnel: localhost:6000 → database.example.com:3306 via ec2-user@222.000.111.000

Now, access the database locally:

mysql -h 127.0.0.1 -P 6000 -u your_user -p

šŸ›‘ Uninstall

To remove ezssh, run:

npm uninstall -g ezssh

šŸ“œ License

MIT License


ā¤ļø Contributing

Feel free to open issues and contribute to the project!

Happy SSHing! šŸ–„ļøšŸš€