- Go 100%
|
All checks were successful
Build Go Binaries / Build cross-platform Go program (push) Successful in 1m38s
|
||
|---|---|---|
| .github/workflows | ||
| examples | ||
| tools | ||
| tui | ||
| .gitignore | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| main.go | ||
| README.md | ||
🔐 ssh-prompter
The source of this project is https://git.azlux.fr/azlux/ssh-prompter, PR are accepted on the source only.
This standalone TUI relies entirely on your SSH configuration file, without any database. It's a Go rewrite of my previous Python 3 script.
✨ Features
- ✅ Lists all servers from your
~/.ssh/config - 🔍 Instant search to quickly find hosts
- 📂 Folder grouping for better organization
- 🔗 Supports
Includedirectives in ssh_config - ⚡ Fast and lightweight TUI interface (made with Go)
- 🔌 Connect to the selected host
📸 Screenshot
⚙️ Installation
Via APT (recommended)
echo "deb [signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] http://packages.azlux.fr/debian/ trixie main" | sudo tee /etc/apt/sources.list.d/azlux.list
sudo wget -O /usr/share/keyrings/azlux-archive-keyring.gpg https://azlux.fr/repo.gpg
sudo apt update
sudo apt install ssh-prompter
Manually
You need to install the Go Language
Then you can build the project
git clone https://git.azlux.fr/azlux/ssh-prompter.git
cd ssh-prompter
go build
🛠 Configuration
Alias
Many people don't like the long command ssh-prompter so I recommand to put an alias into your ~/.profile or ~/.bashrc.
It's safe to replace the ssh command since I don't interfere with ssh if additionnals parameters are used.
# alias ssh="ssh-prompter"
# or
# alias sshp="ssh-prompter"
Usage
Simply run :
ssh
.... and enjoy the fast interactive prompt (⚡) then press Enter to connect to the selected host (🚀)!
SSH config configuration
Everything is here : Official ssh_config manual I don't have a custom config file, neither a database.
This program parse the standard ssh config file. See the example for a basic config for ssh
Folder
SSH-Prompter manage folder.
Host will be group by Folder when no search.
Two methods:
- The Host name can be
FolderName/Name, - You can add the ssh config option
Folder FolderName.- In this case you need
IgnoreUnknown Folderon the TOP of your.ssh/configfile (to avoid error).
- In this case you need
You can use both (but not in the same time for the same Host) !
Additionnal information
All Host with * are ignored.
I consider we don't want to "select" them since it's a wildcard for other hosts
Why two methods for folder :
I first wanted to have the / (slash) method but when you use ProxyJump, ssh don't allow slash into the name.
So the option Folder is here to allow having a proxy server into a folder.
TMUX
If you run the script on a tmux. The window will be renamed with the Host selected.
It use the command tmux rename-window xxxxx
📜 License
MIT License - see LICENSE for details.