SSH por Claves: Configuración Segura en 3 Minutos

Si todavía usas contraseñas para SSH, estás jugando a la ruleta rusa con la seguridad de tu servidor. Hoy en día es obligatorio usar claves SSH.

Configuración Esencial

Edita /etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config

Líneas clave:

PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no

La opción de PasswordAuthentication no, no permite login usando password. Así que nadie podrá probar contraseñas por fuerza bruta.
La opción de PubkeyAuthentication yes establece que sólo se puede entrar por ssh usando una clave pública.
La opción de PermitRootLogin no establece que no puedas entrar directamente como usuario root. Lo ideal es entrar con un usuario con menos privilegios que sea sudoer. Aunque es cómodo poner esta opción a yes en ciertas ocasiones.

Pasos Rápidos

  • Generar Claves
ssh-keygen -t ed25519
# Enter para todo (o pon passphrase)
  • Copiar Clave Pública
ssh-copy-id usuario@tu-servidor

También puedes añadir manualmente tu clave pública a ~/.ssh/authorized_keys en una nueva línea.

  • Aplicar Cambios
sudo systemctl reload sshsudo systemctl reload ssh
  • Verificación
ssh usuario@tu-servidor

Este último comando te debería permitir conectar sin usar password.

Y ya lo tenemos, ya podemos ir a dormir más tranquilos.

How to create a mountpoint trough SSH

For console addicted, accessing trough SSH to a server is a really common task. Under my point of view, usually console text editors like vi or nano are not the best option to work with a lot of files at the same time like we can do with any other graphic text editors.
So, I decided to make an internet search to try to find an application able to mount a SSH connection like a standard file system. The application is called sshfs, they didn’t think a lot to get the name 😛
In order to install it, if you use ubuntu, just click on sshfs or write the command below in a terminal:
pedro@pedro-laptop:~$ sudo apt-get install sshfs
Once installed, you only need this command to get it work:
pedro@pedro-laptop:~$ sshfs user@server.com:/my/directory /media/ssh
Where:
  • user, is the name of the SSH user,
  • server.com:, is the name of the server (colon is required)
  • /my/directory, is the remote directory you want to mount, and
  • /media/ssh, is the local directory where the mountpoint will be placed
That’s all, you can now open the directory /media/ssh like any other local directory and open files with your favourite text editor 🙂

Montar una unidad remota a través de SSH

Para los adictos a los terminales, acceder a través de SSH a cualquier servidor está a la orden del día. Hay que reconocer que en muchas ocasiones los editores como vi o nano, se quedan cortos a la hora de trabajar con diferentes ficheros a la vez, tal y como lo hacemos con cualquier otro editor gráfico.
Así que he rebuscado por internet, y he encontrado una aplicación capaz de montar una conexión SSH como si de un sistema de ficheros normal se tratase. La aplicación se llama sshfs, tampoco se han pensado demasiado el nombre 😛
Para instalarlo, si utilizas ubuntu, es tan sencillo como hacer clic en sshfs o escribir en un terminal lo siguiente:
pedro@pedro-laptop:~$ sudo apt-get install sshfs
Una vez instalado, sólo hay que lanzar el siguiente comando para usarlo:
pedro@pedro-laptop:~$ sshfs usuario@servidor.com:/mi/directorio /media/ssh
Donde:
  • usuario, es el nombre de usuario con el que entrar,
  • servidor.com:, es el dominio del servidor (los dos puntos son necesarios siempre)
  • /mi/directorio, es el directorio remoto que quieres montar
  • /media/ssh, es el directorio local donde se montará el sistema de archivos
Ahora ya podemos usar el directorio /media/ssh como si de un directorio local se tratase y abrir cualquier fichero con el editor que queramos 🙂