Otro de mis pequeños proyectos

«Tunear» un poco nuestro ssh

Este es un sencillo truco que a mi me descubrió hace ya un tiempo mi buen amigo Iñigo, que os abrirá (si no lo ha hecho ya) una puerta hací­a una mayor rapidez con el comando ssh. Empezaré directamente poniendo un ejemplo: supongamos que para acceder a un servidor con los siguientes parámetros (lo sé, están un poco exagerados, pero creo que se entenderá el ejemplo):

  • Dirección: punto.de.entrada.al.servidor.com
  • Usuario: miusuario
  • Puerto 12345
  • Fichero de clave: /home/user/.ssh/fichero.clave

El chorizo comando que nos hace falta es:

ssh punto.de.entrada.al.servidor.com -l miusuario -p 12345 -i /home/user/.ssh/fichero.clave

Casi nada

Bien, hay una forma de acortarlo un poco. El truco está en configurar todos estos parámetros en un fichero. Este fichero lo podemos encontrar en nuestra cuenta de usuario, concretamente en ~/.ssh/config. Este fichero por defecto viene vací­o pero, siguiendo con el ejemplo escribimos estas lí­neas en su interior:


Host miservidor
HostName punto.de.entrada.al.servidor.com
User miusuario
Port 1234
IdentityFile /home/user/.ssh/fichero.clave

Con este simple gesto, ahora podemos cambiar el comando ssh anterior por:

ssh miservidor

Casi nada la diferencia 🙂

Si investigas un poco el man de ssh_config seguro que encuentras muchas cosas de utilidad. Más adelante daré otro truco relacionado con este.

P. P: y como bien te recomendarí­a un administrador de sistemas, si encima añades el hostname a tu /etc/hosts, irá «volado»! Se ahorrará la resolución DNS

Enlaces:

1 comentario

  1. poisonbit

    Ole!! 🙂

    Lo del /etc/hosts, es realmente conveniente, ya que SSH por defecto hace DNS inverso, aunque te conectes a una IP, y además al editar el hosts, empieza a funcionar bien el bash completion (tab tab) para los nombres de host q pongas. P. ej.

    ssh (tab tab) => lista de hosts definidos en /etc/hosts

    ssh miserv (tab tab enter) => completa el nombre y se conecta

    Y una cosa que he empezado a hacer de un tiempo a esta parte: que cuando conecte por ssh, solo muestre el prompt (no muestre mensajes de bienvenida, banners, etc):


    ssh miServidor touch '/home/usuario/.hushlogin'

    Así­ debajo de la lí­nea de ssh, aparece seguido el promt remoto.

    Y un tunning más que puede ser recomendable, cuando se abren muchas sesiones de SSH a las mismas máquinas, en muchos escitorios en pantallas de 24″ =)… es la reutilización del tunel para conexiones concurrentes al mismo hosts:


    Host *
    ControlPath ~/.ssh/sock/%r@%h:%p
    ControlMaster auto

    Las declaraciones con el wilcard *, mejor ponerlas abajo del todo (porque la config hace matching de arriba a abajo).

    Happy hacking!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *