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]
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:
- Generar el par de claves público y privada como hemos detallado en otro tutorial.
- 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.
- 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
Por partes:
Host ubuntuserver
nos permite poner nombre para el acceso directo, como veremos a continuación.
Hostname 192.168.1.150
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
para que acceda con ese usuario. Si no, tomará el nuestro por defecto del host.
Port 2220
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
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
para indicar que queremos que acceda por par de claves.
Una vez hecho esto, desde nuestro equipo local accederemos con
ssh ubuntuserver
al servidor remoto y directamente entraremos en
administracion@ubuntuserver:/var/www/html$
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)