A lightweight, zero-dependency Bash tool to manage SSH connections with aliases.
Stop memorizing hosts, usernames and ports.
Store every server under a short alias and connect with a single command.
conn is a single-file Bash script that wraps ssh with a human-friendly interface. It stores your server definitions in ~/.ssh_connections.conf and exposes a clean CLI to add, list, edit, connect to, and remove them — plus SSH key management and auto-update built in.
conn to production # SSH into "production" in one shot
conn list # Pretty-printed table of all servers
conn add # Interactive wizard to add a new server
conn update # Pull the latest version from GitHubcurl -fsSL https://conn.web.ap.it/setup.sh | bashDownloads and installs conn to /usr/local/bin
| Command | Description |
|---|---|
conn add |
Interactive wizard to save a new connection |
conn list |
Print all connections in a formatted table |
conn info <alias> |
Show full details for a single connection |
conn to <alias> |
Open an SSH session by alias |
conn edit <alias> |
Modify an existing connection |
conn remove <alias> |
Delete a connection (with confirmation) |
conn reset <alias> |
Remove stale host keys (ssh-keygen -R) |
conn key <action> |
Manage SSH keys — public, private, create |
conn update |
Self-update from GitHub |
conn help |
Print usage reference |
conn addType alias: production
Type user (default: root): deploy
Type host: prod.example.com
Type port (default: 22): 22
Password (optional — copied to clipboard on connect):
Type remote folder (optional): /var/www/myapp
conn list╔════════════════════════════════════════════════════════════════════════════╗
║ SSH SERVERS LIST ║
╚════════════════════════════════════════════════════════════════════════════╝
production 🔑 📂
↳ root@prod.example.com:22
↳ /var/www/myapp
staging
↳ deploy@staging.example.com:2222
myserver
↳ andrea@192.168.1.100:22
────────────────────────────────────────────────────────────────────────────
💡 Use conn to <alias> to connect
🔑 saved password 📂 remote folder
🔑 indicates a saved password that will be automatically copied to the clipboard on connect. 📂 indicates a remote folder that the session will automatically cd into on connect.
conn to productionBefore opening the SSH session, conn will:
- Verify that an SSH key pair exists (warns if missing)
- Check for available script updates
- Copy the saved password to the clipboard (if one is stored)
- Hand off to
ssh(and automaticallycdinto the remote folder, if configured)
conn key public # Print your public key
conn key create # Generate a new id_rsa key pair
conn key private # Print your private key (handle with care)Useful when you get a "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED" error:
conn reset myserverConnections are persisted in a plain-text file:
~/.ssh_connections.conf
Each line follows the format alias|user|host|port|password|folder. You can back it up, version-control it, or copy it between machines freely. The folder field is optional — when set, the SSH session will automatically cd into that directory on connect.
Security note: Passwords are stored in plain text. Where possible, prefer SSH key-based authentication and leave the password field empty.
- macOS or any Unix-like system
- Bash 4.0+
- OpenSSH client
- Git (required for
conn update) - Clipboard support —
pbcopyon macOS (built-in),xcliporxselon Linux
Remove the binary:
sudo rm /usr/local/bin/connRemove saved connections:
rm ~/.ssh_connections.confOnce you've connected to your servers with conn, deploy your Laravel apps with cipi.sh — an open-source CLI built exclusively for Laravel. One command installs a complete production stack on any Ubuntu VPS: PHP-FPM, MariaDB, Nginx, Let's Encrypt SSL, zero-downtime deploys.
- Website: conn.web.ap.it
- Repository: github.com/andreapollastri/conn.web.ap.it
Pull requests are welcome. For significant changes, please open an issue first to discuss what you'd like to change.
MIT — free to use, modify and distribute.
Made with care by Andrea Pollastri