Menú de sesiones SSH usando dmenu

A modo de introducción, y por si todavía queda alguien suscrito a este blog medio abandonado, comentaré que des de hace unos meses estoy usando dwm (lo digo por la cantidad de artículos en los que hablé de e17 y kde, algunos de ellos ya eliminados). dwm usa dmenu como lanzador de aplicaciones (los dos son proyectos de suckless.org).

Pues hace un par de días estaba en casa de un amigo trasteando un poco con dmenu y me dí cuenta de lo simple y flexible que es. Había visto usarlo como lanzador de URLs para uzbl-browser y decidí probar de hacer algo medio útil.

Y aquí va mi experimento, que es cutre y parecerá una tonteria para los que ya conozcan dmenu, pero a mi me ha sido útil.

En primer lugar creamos un fichero con las conexiones SSH que solemos lanzar y lo guardamos en ~/.ssh/menusessions.

usuario1@ejemplo.com -p 2222
usuario2@otroejemplo.com
usuario2@192.168.0.10

Ahora añadimos este alias en .bashrc (o el equivalente en la SHELL que usemos):

alias sshmenu='ssh `cat ~/.ssh/menusessions | dmenu`'

Recargamos el fichero .bashrc

$ source ~/.bashrc

Y ahora con sólo ejecutar sshmenu aparecerá en la parte superior de nuestra pantalla un menú con las opciones que hayamos introducido dentro del fichero menusessions.

2 thoughts on “Menú de sesiones SSH usando dmenu

  1. marc0s

    En base a tu idea, yo he acabado con lo siguiente:

    ~/bin/sshmenu:

    #!/bin/bash

    urxvt -e ssh `cat .ssh/config | grep ^host | awk ‘{ print $2 }’ | dmenu`

    Así me salen en el dmenu todas las entradas que tengo definidas en mi ~/.ssh/config y editando un solo fichero ya tengo el menu y el config de ssh en sí :)

    Luego ~/bin/sshmenu asociado a un shortcut en el WM y listos :D

  2. ZUNbado

    Si en tu .ssh/config tienes definido
    HashKnownHosts no
    en el fichero .ssh/known_hosts se guardan TODAS las conexiones que realizas, asi que adaptando tu idea…
    alias sm=’ssh $(cat .ssh/known_hosts|grep “,”|cut -d”,” -f1|dmenu -i -b -p “Abrir ssh a…”)’

    Saludos! ;D

Comments are closed.