ksshmenu - Ein grafischer SSH-Manager für KDE
Zuweilen gibt es ja doch nervende Tätigkeiten, mit denen man sich als Serveradministrator beschäftigen muss. Dazu gehören Sätze wie “Kannst du mal eben auf allen Servern ein ‘/etc/init.d/apache2 restart’ machen?“. Es folgt eine stupide Tätigkeit, 5 oder 10 Mal ein neues Tab in der KDE “konsole” zu öffnen, sich auf allen Servern einzuloggen und den Befehl über Konsoles Sitzungsmanager automatisch an alle Tabs zu senden.
Das ist natürlich ein untragbarer Zustand für einen faulen ungeduldigen Menschen voller Hybris wie mich, also dachte ich mir, schaffe ich dem Abhilfe indem ich das automatisiere. In einer Nacht- und Nebelaktion entstand schließlich “ksshmenu”, ein kleines KDE Kicker Applet, das sich in den Desktop einhängt. Gnome Benutzer können das mächtigere und ausgereiftere SSHMenu benutzen. Inspiriert davon baute ich ein minimales Äquivalent dazu für KDE und den KDE Terminalemulator konsole. Bei entsprechenden Feedback, Lust und Laune ist es jedoch durchaus noch im Bereich des möglichen aus meinem ksshmenu ein ausgereifteres Programm zu machen.
Funktionsumfang und Screenshots
Screenshots
Vollbildansicht mit (automatisch) gestarteten Konsole Sitzungen
Menüansicht mit verschachtelten Kategorien
Deutsche und englische Lokalisierung (systemabhängig) mit dem Einstellungsdialog.
Funktionsübersicht
- Kontextmenü für Server, die per Mausklick eine SSH-Sitzung in einer Konsole öffnen
- Beliebige verschachtelbare Gruppen und Servereinträge
- XML-basierte Konfigurationsdatei um möglichst flexibel zu sein (und bleiben)
- Die Möglichkeit Gruppen von Servern in einer getabbten Shell zu öffnen und so über KDE konsole automatisch parallel anzusprechen
- Open Source (GPL 2)
Bei entsprechendem Interesse und Wünschen ist ksshmenu mit Sicherheit noch sehr ausbaufähig. Ebenso ist meine Anwendung kaum getestet, gemäß dem Credo “release early, release often”.
Download
- ksshmenu-0.1.tar.bz2 - Source Distribution
- ksshmenu_0.1-1_i386.deb - Debian Paket (i386/sid), tuts eventuell auch mit Ubuntu (bitte berichten wenn ja)





Loading...
Sehr genial, Danke dafür…manchmal sinds die kleinen Sachen die den Tag verschönern :-)
Lässt sich übr. auch unter Kubuntu installieren, zumindest unter Hardy. Kleiner Fehler: Das Konfig-Example ist falsch benannt.
Heißt ‘kssmenu.xml.example’ anstatt ‘ksshmenu.xml.example’…aber nix wildes wenn mans denn mal gesehen hat.
Echt ne super Idee, werd ich direkt morgen mal weiterempfehlen!
zero - 16. Mai 2008 um 22:50
Ah, Danke. Ist behoben und wird beim nächsten Update richtig mit ausgeliefert.
Arno - 17. Mai 2008 um 00:09
Danke!
Ich brauch zwar das Programm nicht direkt aber ich kannte dieses SSHMenu noch nicht. Das macht das Arbeiten leichter.
Fabrice - 17. Mai 2008 um 19:35
Also bei mir lässt sich das *.deb Paket trotz mehrmaligem neuladen nicht installieren. Angeblich ist die Datei kaputt oder ich besitze nicht die nötigen Rechte.
six - 25. Mai 2008 um 10:11
Nunja, die nötigen Rechte sind zur Installation natürlich vonnöten, sprich du musst “root” sein. Das Paket an sich sollte in Ordnung sein, bei mir funktioniert es, bei zero wohl auch.
Arno - 25. Mai 2008 um 11:52
Hallo,
sieht interessant aus, leider bricht das ‘make’ unter openSuSE mit einem Fehler in ‘autoconf’ ab.
Michael Otto - 28. Mai 2008 um 07:06
Was verstehst du unter “make” bricht mit Fehler in autoconf ab? Autoconf generiert erst das Makefile, damit du überhaupt erst “make” anwenden kannst.
Du hast vermutlich nicht alle nötigen Bibliotheken installiert, um das Programm zu kompilieren. Du benötigst zumindest neben einem C Compiler (g ) und zugehörigen Standard Headern auf jeden Fall die Bibliotheken libqt3-dev, libexpat1-dev und kdelibs-dev um das Programm zu kompilieren - oder wie die die zugehörigen Pakete auf Suse auch immer heißen mögen.
Arno - 28. Mai 2008 um 14:50
hi, ich nehme an es sind die Bibliotheken ‘qt3-devel’ , ‘libexpat-devel’ und ‘kdelibs3-devel’. Sind alle installiert nebem dem Compiler und den Headern.
Nehme an das in der Datei ‘ksshmenu-0.1.tar.bz2′ schon ein Fehler drin ist. Das entpacken bricht mit mehreren Meldungen über angeblich schon vorhandene Dateien ab.
Fehlermeldung von ‘make’ zB:
make: *** Keine Regel vorhanden, um das Target »admin/acinclude.m4.in«,
benötigt von »acinclude.m4«, zu erstellen. Schluss.
Michael Otto - 28. Mai 2008 um 16:01
Arno - 28. Mai 2008 um 18:03
ist klar, und bei make der obige fehler
Michael Otto - 28. Mai 2008 um 18:05
Dann wird “configure” aber nicht richtig abgeschlossen. Überprüf bitte, ob das mit
endet, wenn ja schieb mal die komplette Ausgabe von configure irgendwohin, damit ich das sehe.
Arno - 28. Mai 2008 um 18:13
./configure
checking build system type… i686-pc-linux-gnu
checking host system type… i686-pc-linux-gnu
checking target system type… i686-pc-linux-gnu
checking for a BSD-compatible install… /usr/bin/install -c
checking for -p flag to install… yes
checking whether build environment is sane… yes
checking for gawk… gawk
checking whether make sets $(MAKE)… yes
checking for kde-config… /opt/kde3/bin/kde-config
checking where to install… /opt/kde3 (as returned by kde-config)
checking for style of include used by make… GNU
checking for gcc… gcc
checking for C compiler default output file name… a.out
checking whether the C compiler works… yes
checking whether we are cross compiling… no
checking for suffix of executables…
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ISO C89… none needed
checking dependency style of gcc… gcc3
checking how to run the C preprocessor… gcc -E
checking for g … g
checking whether we are using the GNU C compiler… yes
checking whether g accepts -g… yes
checking dependency style of g … gcc3
checking whether gcc is blacklisted… no
checking whether g supports -Wmissing-format-attribute… yes
checking whether gcc supports -Wmissing-format-attribute… yes
checking whether g supports -Wundef… yes
checking whether g supports -Wno-long-long… yes
checking whether g supports -Wno-non-virtual-dtor… yes
checking whether g supports -fno-reorder-blocks… yes
checking whether g supports -fno-exceptions… yes
checking whether g supports -fno-check-new… yes
checking whether g supports -fno-common… yes
checking whether g supports -fexceptions… yes
checking whether system headers can cope with -O2 -fno-inline… irrelevant
checking how to run the C preprocessor… g -E
checking whether g supports -O0… yes
checking whether g supports -Wl,–no-undefined… yes
checking whether g supports -Wl,–allow-shlib-undefined… yes
not using lib directory suffix
checking for a sed that does not truncate output… /usr/bin/sed
checking for grep that handles long lines and -e… /usr/bin/grep
checking for egrep… /usr/bin/grep -E
checking for ld used by gcc… /usr/i586-suse-linux/bin/ld
checking if the linker (/usr/i586-suse-linux/bin/ld) is GNU ld… yes
checking for /usr/i586-suse-linux/bin/ld option to reload object files… -r
checking for BSD-compatible nm… /usr/bin/nm -B
checking whether ln -s works… yes
checking how to recognise dependent libraries… pass_all
checking for ANSI C header files… yes
checking for sys/types.h… yes
checking for sys/stat.h… yes
checking for stdlib.h… yes
checking for string.h… yes
checking for memory.h… yes
checking for strings.h… yes
checking for inttypes.h… yes
checking for stdint.h… yes
checking for unistd.h… yes
checking dlfcn.h usability… yes
checking dlfcn.h presence… yes
checking for dlfcn.h… yes
checking for g77… no
checking for xlf… no
checking for f77… no
checking for frt… no
checking for pgf77… no
checking for cf77… no
checking for fort77… no
checking for fl32… no
checking for af77… no
checking for xlf90… no
checking for f90… no
checking for pgf90… no
checking for pghpf… no
checking for epcf90… no
checking for gfortran… no
checking for g95… no
checking for xlf95… no
checking for f95… no
checking for fort… no
checking for ifort… no
checking for ifc… no
checking for efc… no
checking for pgf95… no
checking for lf95… no
checking for ftn… no
checking whether we are using the GNU Fortran 77 compiler… no
checking whether accepts -g… no
checking the maximum length of command line arguments… 32768
checking command to parse /usr/bin/nm -B output from gcc object… ok
checking for objdir… .libs
checking for ar… ar
checking for ranlib… ranlib
checking for strip… strip
checking if gcc static flag works… yes
checking if gcc supports -fno-rtti -fno-exceptions… no
checking for gcc option to produce PIC… -fPIC
checking if gcc PIC flag -fPIC works… yes
checking if gcc supports -c -o file.o… yes
checking whether the gcc linker (/usr/i586-suse-linux/bin/ld) supports shared libraries… yes
checking whether -lc should be explicitly linked in… no
checking dynamic linker characteristics… GNU/Linux ld.so
checking how to hardcode library paths into programs… immediate
checking whether stripping libraries is possible… yes
checking for shl_load… no
checking for shl_load in -ldld… no
checking for dlopen… no
checking for dlopen in -ldl… yes
checking whether a program can dlopen itself… yes
checking whether a statically linked program can dlopen itself… yes
checking if libtool supports shared libraries… yes
checking whether to build shared libraries… yes
checking whether to build static libraries… no
configure: creating libtool
appending configuration tag “CXX” to libtool
checking for ld used by g … /usr/i586-suse-linux/bin/ld
checking if the linker (/usr/i586-suse-linux/bin/ld) is GNU ld… yes
checking whether the g linker (/usr/i586-suse-linux/bin/ld) supports shared libraries… yes
checking for g option to produce PIC… -fPIC
checking if g PIC flag -fPIC works… yes
checking if g supports -c -o file.o… yes
checking whether the g linker (/usr/i586-suse-linux/bin/ld) supports shared libraries… yes
checking dynamic linker characteristics… GNU/Linux ld.so
checking how to hardcode library paths into programs… immediate
checking whether stripping libraries is possible… yes
checking for shl_load… (cached) no
checking for shl_load in -ldld… (cached) no
checking for dlopen… (cached) no
checking for dlopen in -ldl… (cached) yes
checking whether a program can dlopen itself… (cached) yes
checking whether a statically linked program can dlopen itself… (cached) yes
appending configuration tag “F77″ to libtool
checking for msgfmt… /usr/bin/msgfmt
checking for gmsgfmt… /usr/bin/msgfmt
checking for xgettext… :
checking if C programs can be compiled… yes
checking for strlcat… no
checking if strlcat needs custom prototype… yes - in libkdefakes
checking for strlcpy… no
checking if strlcpy needs custom prototype… yes - in libkdefakes
checking for main in -lutil… yes
checking for main in -lcompat… no
checking for crypt in -lcrypt… yes
checking for socklen_t… yes
checking for dnet_ntoa in -ldnet… no
checking for dnet_ntoa in -ldnet_stub… no
checking for inet_ntoa… yes
checking for connect… yes
checking for remove… yes
checking for shmat… yes
checking for sys/types.h… (cached) yes
checking for stdint.h… (cached) yes
checking sys/bitypes.h usability… yes
checking sys/bitypes.h presence… yes
checking for sys/bitypes.h… yes
checking for poll in -lpoll… no
checking Carbon/Carbon.h usability… no
checking Carbon/Carbon.h presence… no
checking for Carbon/Carbon.h… no
checking CoreAudio/CoreAudio.h usability… no
checking CoreAudio/CoreAudio.h presence… no
checking for CoreAudio/CoreAudio.h… no
checking if res_init needs -lresolv… yes
checking for res_init… yes
checking if res_init needs custom prototype… no
checking for killpg in -lucb… no
checking for int… yes
checking size of int… 4
checking for short… yes
checking size of short… 2
checking for long… yes
checking size of long… 4
checking for char *… yes
checking size of char *… 4
checking for dlopen in -ldl… (cached) yes
checking for shl_unload in -ldld… no
checking for size_t… yes
checking size of size_t… 4
checking for unsigned long… yes
checking size of unsigned long… 4
checking sizeof size_t == sizeof unsigned long… yes
checking for PIE support… yes
checking if enabling -pie/fPIE support… yes
checking crt_externs.h usability… no
checking crt_externs.h presence… no
checking for crt_externs.h… no
checking for _NSGetEnviron… no
checking for vsnprintf… yes
checking for snprintf… yes
checking for X… libraries /usr/lib, headers .
checking for IceConnectionNumber in -lICE… yes
checking for libXext… yes
checking for pthread_create in -lpthread… yes
checking for extra includes… no
checking for extra libs… no
checking for libz… -lz
checking for libpng… -lpng -lz -lm
checking for libjpeg6b… no
checking for libjpeg… -ljpeg
checking for perl… /usr/bin/perl
checking for Qt… libraries /usr/lib/qt3/lib, headers /usr/lib/qt3/include using -mt
checking for moc… /usr/lib/qt3/bin/moc
checking for uic… /usr/lib/qt3/bin/uic
checking whether uic supports -L … yes
checking whether uic supports -nounload … yes
checking if Qt needs -ljpeg… no
checking for rpath… yes
checking for KDE… libraries /opt/kde3/lib, headers /opt/kde3/include
checking if UIC has KDE plugins available… yes
checking for KDE paths… defaults
checking for dcopidl… /opt/kde3/bin/dcopidl
checking for dcopidl2cpp… /opt/kde3/bin/dcopidl2cpp
checking for mcopidl… /opt/kde3/bin/mcopidl
checking for artsc-config… /opt/kde3/bin/artsc-config
checking for meinproc… /opt/kde3/bin/meinproc
checking for kconfig_compiler… /opt/kde3/bin/kconfig_compiler
checking for dcopidlng… /opt/kde3/bin/dcopidlng
checking for xmllint… /usr/bin/xmllint
checking whether byte ordering is bigendian… no
checking for MAXPATHLEN… 4096
checking if admin should be compiled… no
checking if doc should be compiled… yes
checking if po should be compiled… yes
checking if src should be compiled… yes
configure: creating ./config.status
wrong input (flag != 4) at admin/conf.change.pl line 117, line 1237.
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating doc/en/Makefile
config.status: creating po/Makefile
config.status: creating src/Makefile
config.status: creating config.h
config.status: executing depfiles commands
Good - your configure finished. Start make now
Michael Otto - 28. Mai 2008 um 18:16
make
cd . && make -f admin/Makefile.common configure.in ;
make[1]: Entering directory `/home/michael/Desktop/_ksshmenu-0.1/ksshmenu’
*** Creating configure.files
make[1]: Leaving directory `/home/michael/Desktop/_ksshmenu-0.1/ksshmenu’
cd . && /bin/sh /home/michael/Desktop/_ksshmenu-0.1/ksshmenu/admin/missing –run aclocal-1.7
/home/michael/Desktop/_ksshmenu-0.1/ksshmenu/admin/missing: line 52: aclocal-1.7: command not found
WARNING: `aclocal-1.7′ is missing on your system. You should only need it if
you modified `acinclude.m4′ or `configure.in’. You might want
to install the `Automake’ and `Perl’ packages. Grab them from
any GNU archive site.
cd . && \
/bin/sh /home/michael/Desktop/_ksshmenu-0.1/ksshmenu/admin/missing –run automake-1.7 –gnu Makefile
/home/michael/Desktop/_ksshmenu-0.1/ksshmenu/admin/missing: line 52: automake-1.7: command not found
WARNING: `automake-1.7′ is missing on your system. You should only need it if
you modified `Makefile.am’, `acinclude.m4′ or `configure.in’.
You might want to install the `Automake’ and `Perl’ packages.
Grab them from any GNU archive site.
cd . && perl admin/am_edit Makefile.in
cd . && rm -f configure
cd . && make -f admin/Makefile.common configure
make[1]: Entering directory `/home/michael/Desktop/_ksshmenu-0.1/ksshmenu’
configure.in:43: error: possibly undefined macro: AM_INIT_AUTOMAKE
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.in:48: error: possibly undefined macro: AM_CONFIG_HEADER
configure.in:51: error: possibly undefined macro: AC_CHECK_COMPILERS
configure.in:52: error: possibly undefined macro: AC_ENABLE_SHARED
configure.in:53: error: possibly undefined macro: AC_ENABLE_STATIC
configure.in:58: error: possibly undefined macro: AM_KDE_WITH_NLS
configure.in:61: error: possibly undefined macro: AC_PATH_KDE
configure.in:70: error: possibly undefined macro: AC_CHECK_KDEMAXPATHLEN
make[1]: *** [configure] Fehler 1
make[1]: Leaving directory `/home/michael/Desktop/_ksshmenu-0.1/ksshmenu’
make: *** [configure] Fehler 2
Michael Otto - 28. Mai 2008 um 18:20
Sollte zwar eigentlich nicht nötig sein, aber versuch mal
vor dem configure.
Nachtrag: wird ebenso nicht funktionieren, jetzt wo ich deine make-Ausgabe sehe:
aclocal-1.7 findest du im Paket automake1.7 (oder wie auch immer, das unter Suse heißt).
Arno - 28. Mai 2008 um 18:31
genial, danke für die schnelle hilfe, hat geklappt
Michael Otto - 28. Mai 2008 um 18:39
Nettes Teil, wird demnächst installiert :)
Steve - 12. Juni 2008 um 18:45
Hi.
I have a feature request. Can you please add an option to change ssh port, please?
Dovydas Sankauskas - 24. Juni 2008 um 11:35
That’s already planned for a future release. I can’t give you a release schedule anyway, since I’ve currently got no time left for it.
Arno - 25. Juni 2008 um 14:21
I have one more feature request. I think it would be great, if a user could connect to the server and enter a predefined command with a single click. For example, I want to ssh to my cisco router, enter a password, then enter a command ‘enable’ and then enter an enable password. It would be very nice if I could do it with a single click.
Thanks a lot
Dovydas
Dovydas Sankauskas - 26. Juni 2008 um 12:59