← back to /blog← powrót do /blog
sshmgr poszedł w świat (i po co go w ogóle pisałem)
Lata łatania ~/.ssh/config i pisania jednorazowych bashy żeby ogarniać setki hostów
za jumphostami, Duo MFA i wielokrotnym sudo. Termius i mRemoteNG są ciężkie i każą
się logować, żeby używać własnego laptopa. Minimalne TUI są spoko, ale zwykle robią
tyle co cat ~/.ssh/config | menu. Więc usiadłem i napisałem
sshmgr — manager SSH gdzieś pomiędzy.
Co robi
- CLI + TUI w jednym Go binary. Domyślnie
sshmgr <alias>wpada w shell.sshmgr uiotwiera drzewo hostów z live statusami. - Sekwencje logowania z OS keyring.
su - deployer→sudo su -z hasłami z libsecret / macOS Keychain, env varów, custom commandów albo z promptu. Każdy krok ma własny resolver. - Port forwarding (
-L/-R/-DSOCKS5), X11, agent forwarding — wszystko przez ten sam łańcuch (proxy_jump, jumphosty, dowolny auth backend). - Wbudowany SCP / SFTP / 2-panelowy file manager — żadnego WinSCP obok, żadnego drugiego connect chainu do utrzymania.
- Parallel exec po flocie.
sshmgr exec --group fleet 'uptime'— bounded concurrency, prefixowany output, pass/fail,--retry,--diff,--json. - Integracja z Ansible.
export ansiblewypluwa flotę jako inventory (sam ogarnia bastiony i proxy hopy);playbookpuszczaansible-playbookna dowolnym selektorze. sshmgr lint— wyłapie zepsuteproxy_jump, brakujące klucze, kolizje snippetów i niezdefiniowane grupy, zanim trafisz na to przy próbie połączenia.
Jeden plik Go. Zero usług, zero demonów, zero kont, zero telemetrii.
Czym nie jest
- Nie SaaS. Nic nie wychodzi z Twojej maszyny.
- Nie zastępuje
ssh— pod spodem siedzigolang.org/x/crypto/ssh, a dla hostów oznaczonychexternal: truesystemowyssh. - Nieprzetestowany na Windowsie. W teorii działa; nikt z testów nie siedzi na Windowsie.
Gdzie żyje
- Landing: systeam.pl/sshmgr
- Źródła: github.com/pawel-cygal/sshmgr — MIT
- Issues i PRy mile widziane
— Paweł