DEV Community

Cover image for El archivo de configuración SSH es una navaja suiza
Daniel M.
Daniel M.

Posted on

El archivo de configuración SSH es una navaja suiza

El archivo config de ssh permite automatizar el modo de acceso a servidores remotos. Probablemente, accedas a un VPS por un puerto distinto, a otra instancia quieras ir directamente a un directorio distinto o cualquier otra excepción a un acceso estándar sin necesidad de escribir toda la cadena de parámetros.

Por ejemplo, imaginamos que tenemos un servidor en VirtualBox donde tenemos instalado Apache y openssh-server con:

  • un puerto distinto al establecido por defecto, es decir, diferente al puerto 22,
  • un usuario distinto al del sistema local.

En él, hemos creado el usuario administracion y queremos acceder vía SSH de manera rápida. ¿Cuál es la opción principal? Escribir

$ ssh -p 2220 administrador@[IP]
Enter fullscreen mode Exit fullscreen mode

Para, luego, teclear la contraseña y tener que acceder a la carpeta /var/www/html. Esto lo podemos automatizar con la configuración ofrecida en la siguiente hoja de ruta:

  1. Generar el par de claves público y privada como hemos detallado en otro tutorial.
  2. Asegurarnos de que tenemos instalado openssh-server en el servidor al que nos queremos conectar. Si no, simplemente teclear

$ sudo apt install openssh-server

en el servidor remoto.

  1. Crear un listado más de parámetros en el archivo config de nuestro equipo local ubicado en ~/.ssh/config:
    # Ubuntu Server 20.04 Virtualbox
    Host ubuntuserver
    Hostname 192.168.1.150
    User administracion
    Port 2220
    RequestTTY yes
    RemoteCommand cd /var/www/html; exec $SHELL
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/privatekeys/ubuntuserver
Enter fullscreen mode Exit fullscreen mode

Por partes:

Host ubuntuserver
Enter fullscreen mode Exit fullscreen mode

nos permite poner nombre para el acceso directo, como veremos a continuación.

Hostname 192.168.1.150 
Enter fullscreen mode Exit fullscreen mode

es la IP del servidor. En nuestro caso, hemos configurado en el router que DHCP siempre ofrezca esa IP a la MAC de la tarjeta del servidor.

User administracion
Enter fullscreen mode Exit fullscreen mode

para que acceda con ese usuario. Si no, tomará el nuestro por defecto del host.

Port 2220
Enter fullscreen mode Exit fullscreen mode

Por defecto, ssh intentará acceder al puerto 22. Si el puerto está modificado, hemos de añadir esta opción. En este caso, estaría configurado el 2220.

RequestTTY yes
RemoteCommand cd /var/www/html; exec $SHELL
Enter fullscreen mode Exit fullscreen mode

para que acceda directamente a la carpeta que queremos. La orden puede ser la que quieras, por ejemplo podemos hacer que actualice los repositorios indicando sudo apt update en lugar de cd /var/www/html/

PreferredAuthentications publickey
IdentityFile ~/.ssh/privatekeys/ubuntuserver
Enter fullscreen mode Exit fullscreen mode

para indicar que queremos que acceda por par de claves.

Una vez hecho esto, desde nuestro equipo local accederemos con

ssh ubuntuserver
Enter fullscreen mode Exit fullscreen mode

al servidor remoto y directamente entraremos en

administracion@ubuntuserver:/var/www/html$

Enter fullscreen mode Exit fullscreen mode

Así, accederemos de manera automática a nuestro servidor y a la carpeta en la que trabajamos normalmente, con el $USER deseado y a través del puerto habilitado.

Foto: "Old Railroad switching device" by begemot_dn is licensed under CC BY-NC 2.0.

Top comments (0)