8650b71c3c
Update the usage, feature summary, and notes to reflect known_hosts support, current option flags, and the sample configuration layout.
2.1 KiB
2.1 KiB
mtm-ssh-menu
A Bash SSH target picker built around fzf and YAML configuration.
What it does
- Lists SSH targets from grouped YAML files
- Supports global defaults for user, port, and jump hosts
- Supports per-host overrides
- Can also browse entries from
~/.ssh/known_hosts - Launches
sshdirectly from the selected entry
Requirements
sshfzfjqyq
Usage
./mtm-ssh-menu [--config-dir DIR] [-k [user]]
Options:
-h,--help: show help--config-dir DIR: use a custom configuration directory-k,--known-hosts [user]: include hosts from~/.ssh/known_hosts
By default, the script reads configuration from:
~/.config/mtm-ssh-menu/global.yaml~/.config/mtm-ssh-menu/hosts/*.yaml
Configuration format
global.yaml
ssh:
default_user: root
default_port: 22
default_options: ""
jump_hosts:
office: "user@192.168.10.11"
hosts/dev.yaml
group: dev
servers:
- name: api-1
aliases:
- api
- backend
host: 192.168.10.11
user: dev
port: 2222
- name: web-1
aliases:
- frontend
- ui
host: 192.168.10.12
user: dev
port: 22
hosts/prod.yaml
group: prod
servers:
- name: web-1
aliases:
- frontend
- web
host: web-1.prod.internal
jump_host: office
Each host entry can define:
namealiaseshostuserportjump_host
Sample configuration
A complete sample configuration is available in sample-config/.
Notes
jump_hostvalues are resolved by name fromglobal.yaml.- If a host does not define a user or port, global defaults are used.
default_optionsis present in the config but not consumed by the current script.- The sample config includes
ssh_optionsin one file, but the current script does not consume it yet. - When
-kis used, entries fromknown_hostsare shown with the selected user orrootby default. known_hostsentries use port22.- The script uses strict Bash mode (
set -euo pipefail). - The script name shown in usage is
sshm, while the repository file ismtm-ssh-menu.