English | 简体中文
A lightweight CLI tool for managing SSH configurations and server connections.
- 🔐 Secure key encryption using age
- 📦 Separate configuration from tool, enabling team collaboration
- 🚀 Quick server connections without remembering IPs or key paths
- 📝 Interactive server management
npx @yuexiaoliang1993/essh <command>Or install globally:
npm install -g @yuexiaoliang1993/essh
essh <command>essh initEnter your private config repository URL and password when prompted.
essh setup# Interactive selection
essh connect
# Direct connection
essh connect <name>| Command | Description |
|---|---|
essh init |
Initialize configuration and clone private repository |
essh setup |
Decrypt keys and configure SSH |
essh connect [name] |
Connect to a server |
essh list |
List all servers |
essh add |
Add a new server (interactive) |
essh remove [name] |
Remove a server |
essh encrypt |
Re-encrypt and push to repository |
Your private repository should contain:
essh-config/
├── servers.json # Server list
├── keys/
│ ├── server1.key.age # Encrypted private keys
│ └── server2.key.age
└── .gitignore
{
"servers": [
{
"name": "home",
"host": "192.168.1.100",
"user": "admin",
"port": 22,
"key": "keys/home.key.age",
"label": "Home Server"
}
]
}# Provide password via environment variable (useful for scripts)
export ESSH_PASSWORD="your-password"
essh setupMIT