Egy volt kollégám többször bizonygatta, hogy SecureCRT nélkül ebben a szakmában manapság már nem lehet meglenni, hogy enélkül nem veszik komolyan az embert. Valóban, az említett program legalább akkora változást hozott a remote shell hozzáférések egyszerű kezelésében Windows alatt, mint annak idején a PuTTY. A két programot igazából nem is érdemes hasonlítgatni, annyival okosabb, szebb, modernebb a SecureCRT, hogy a PuTTY csak egyetlen területen veheti fel a versenyt vele: az árában, merthogy ez utóbbi ingyenes. Minden másban, pl. hostok csoportosítása, jelszavak megjegyzése, alapból megnyíló sessionök stb. a SecureCRT viszi a prímet.
Arról azonban sosem sikerült meggyőznöm a kollégát, hogy Linuxon azért van élet a SecureCRT-n kívül is. Persze olyan szintű dolog nincs, mint amilyen a SecureCRT, illetve azt úgy hívják, hogy SecureCRT for Linux, de azért csak fel lehet a bash-t okosítani, hogy menjen az a Tab-os kiegészítés gyakran használt hostnevekre vagy ilyesmi. Nyilván az ember elsősorban már csak SSH-t használ, meg általában parancssort, még ha Linux desktop is fut a gépen, legtöbbször a terminálablak takar ki minden mást. A GNOME 2-es környezetben volt egy klassz kis app, az "SSH Menu", az egész élhető volt, közvetlenül a panelből lehetett kiválasztani a hostokat, de a mostani új desktopokból (GNOME 3, Unity) fájóan hiányzik egy igazán ütős alkalmazás erre. A Remmina lehet, hogy egyszer jó lesz, egyáltalán nem ördögtől való ötlet egyetlen kliensben integrálni az összes hasonló célú funkciót (SSH, VNC, RDP...), de jelen állapotában a Remmina CLI-s felületek használatához meglehetősen kényelmetlen. Szóval mostanában egyre inkább kezd igaza lenni a volt kollégának.
Egészen eddig a percig. Közzéteszem ugyanis a pótolhatatlan, teljesen CLI-s, interaktív SSH indító felületet, amit csak feldobunk egy jump szerverre, és okostelefonról, Windowsról, Linuxról egyaránt használhatjuk, itt van kérem a csodálatos, hasznos, mc-kék SSH menü szkript:
Még akár felhasználónevet is választhatunk (az alapértelmezett a $USER) egy előre megadott listából, vagy beírhatunk tetszés szerinti nevet:
Khm... nos, itt nagyjából véget is ér a szkript tudása, én jelenleg egy kb. 80 hosztos listával használom, és már annyira a szívemhez nőtt, hogy el sem tudnám képzelni a napi munkát nélküle. Különösebb függősége nincs, szükség van a "dialog" csomagra, "ncurses"-re. Kód:
#!/bin/sh
if ! $(which dialog); then
echo "Can't find \"dialog\" binary on PATH."
exit 1
fi
SSHHOST=$(dialog --stdout --title " SSH Menu " --menu " IP............Hostname...............Function/Description" 22 74 100 \
192.168.0.1 "domain-name-host1 Comment for host1" \
192.168.0.2 "domain-name-host2 Comment for host2" \
192.168.0.3 "domain-name-host3 Comment for host3" \
192.168.0.4 "domain-name-host4 Comment for host4" \
192.168.0.5 "domain-name-host5 Comment for host5" \
192.168.0.6 "domain-name-host6 Comment for host6" \
192.168.0.7 "domain-name-host7 Comment for host7" \
192.168.0.8 "domain-name-host8 Comment for host8" \
192.168.0.9 "domain-name-host9 Comment for host9" \
192.168.0.10 "domain-name-host10 Comment for host10" \
192.168.0.11 "domain-name-host11 Comment for host11" \
192.168.0.12 "domain-name-host12 Comment for host12" \
192.168.0.13 "domain-name-host13 Comment for host13" \
192.168.0.14 "domain-name-host14 Comment for host14" \
192.168.0.15 "domain-name-host15 Comment for host15" \
192.168.0.16 "domain-name-host16 Comment for host16" \
)
if test -z $SSHHOST; then
exit 1
fi
REMOTEUSR=$(dialog --stdout --title " Select remote user name " --menu "If you would like to type in a username select \"Cancel\"" 15 40 10 \
$USER "" \
root "" \
admin "" \
cisco "" \
vyatta "" \
)
if test -z $REMOTEUSR; then
REMOTEUSR=$(dialog --stdout --title " Enter remote user name " --inputbox "" 7 40 )
fi
if test -z $REMOTEUSR; then
exit 1
fi
clear
exec ssh -l $REMOTEUSR $SSHHOST