@jay2503/ezssh
v2.0.0
Published
ezssh is a CLI tool for managing SSH connections and tunnels with an interactive menu.
Maintainers
Readme
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 (
.pemfiles). - 🖥️ 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
ezsshThis will display an interactive menu listing all configured SSH connections. Select one, and it will automatically connect using SSH.
Establish an SSH Tunnel
ezssh tunnelsThis 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 ([email protected])
Connecting to My Server Name...
Welcome to Ubuntu 22.04 LTSSSH Tunnel
? Select an SSH tunnel:
❯ Database Tunnel (localhost:6000 → database.example.com:3306)
Creating tunnel: localhost:6000 → database.example.com:3306 via [email protected]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! 🖥️🚀
