En este artículo veremos cómo instalar SSH en Debian 10 Buster paso a paso, de forma que podremos iniciar sesión remota cifrada en nuestro servidor o VPS Debian, e incluso aprovechar este mismo servicio para otros tipos de transmisiones de datos seguras.
Tabla de contenidos
Antes de instalar SSH en Debian 10 Buster
Si quieres seguir esta guía de instalación de SSH en Debian 10 Buster, debes partir de estos requerimientos mínimos:
- Una máquina Debian 10 Buster actualizada.
- Un usuario con privilegios de sudo o el mismo root.
- Conexión a Internet.
- Alguna otra máquina en red para probar el servicio.
En este tutorial usaremos un servidor Debian 10 accesible en el dominio debian10.local, por lo que deberás modificar los ejemplos con la dirección IP o dominio de tu propio sistema Debian 10.
Cómo instalar SSH en Debian 10 Buster
Para instalar SSH en Debian 10 Buster usaremos los repositorios de la distribución, donde encontraremos paquetes tanto para el servidor SSH como para el cliente.
Por tanto la primera acción es actualizar la información de las listas de paquetes:
~$ sudo apt update
Instalación del cliente
Si sólo te interesa instalar el cliente SSH en Debian 10 para conectar con otros sistemas, puedes instalar el paquete openssh-client con apt:
~$ sudo apt install -y openssh-client
Tras instalar el paquete y sus dependencias, dispondremos del cliente de consola ssh. Para usarlo simplemente añadiremos la dirección IP o dominio de la máquina a la que queremos conectar:
~$ ssh xxx.xxx.xxx.xxx
Si la máquina a la que queremos conectar tiene el servicio SSH instalado en un puerto distinto al estándar, lo debemos especificar con el parámetro -p:
~$ ssh xxx.xxx.xxx.xxx. -p xxxx
Ten en cuenta que el cliente ssh intentará conectar al servicio SSH remoto con el usuario local con el que lanzas el comando, así que si quieres conectar como otro usuario debes especificarlo con el parámetro -l:
~$ ssh xxx.xxx.xxx.xxx. -l usuario
Instalación del servicio
Si quieres instalar el servidor SSH en Debian 10 Buster, la mejor elección es el metapaquete ssh, que instalará tanto el paquete del servidor openssh-server como del cliente open-ssh.
~$ sudo apt install -y ssh
Finalizada la descarga e instalación del paquete y sus dependencias, se crea un nuevo servicio en Debian 10, el servicio ssh.service o ssh a secas. El servicio ssh queda en ejecución tras la instalación, y también está habilitado o activado, de modo que SSH iniciará automáticamente en cada arranque de Debian 10 Buster.
Puedes comprobar el estado del servicio SSH en cualquier momento con el comando systemctl status ssh
:
Configurar el firewall UFW para SSH en Debian 10
Si estás instalando el servicio SSH en un VPS Debian 10, por ejemplo, o en cualquier entorno más o menos público, seguramente tengas el firewall UFW activado.
Como la configuración de un firewall no permite conexiones entrantes por defecto, tendrás que aplicar una regla para permitir el acceso a través de SSH:
~$ sudo ufw allow ssh
Este comando es equivalente a especificar simplemente el puerto y protocolo, si tienes configurado el servicio SSH en el puerto estándar, el 22 TCP:
~$ sudo ufw allow 22/tcp
Elijas el método que elijas, las conexiones al servicio estarán permitidas.
Cómo configurar SSH en Debian 10 Buster
A la hora de configurar SSH en Debian 10 Buster podemos estar tranquilos con la configuración por defecto, ya que sus ajustes son seguros.
No obstante, si quieres realizar tus propios ajustes, la ruta de los archivos de configuración de SSH en Debian 10 es /etc/ssh/. El archivo que configura el servicio SSH es sshd_config. y los cambios se aplicarán al recargar la configuración del servicio ssh.service:
~$ sudo systemctl reload ssh
Cambiar el puerto del servicio SSH
Si tienes el servicio SSH funcionando en un servidor VPS Debian 10 entonces te puedo asegurar que está recibiendo constantemente intentos de conexión por parte de visitantes maliciosos que tratan de iniciar sesión.
Podrías configurar el firewall para permitir únicamente conexiones al servicio desde ciertas direcciones IP, pero en gran cantidad de casos los administradores necesitan acceder desde cualquier lugar.
Un truco que eliminará un gran porcentaje de intentos de conexión es configurar el servicio SSH en un puerto no estándar. Para ello, editaremos sshd_config:
~$ sudo nano /etc/ssh/sshd_config
Y buscaremos la directiva Port:
... #Port 22 ...
Activaremos la directiva eliminando el carácter # inicial y especificaremos un puerto alternativo:
... Port 33322 ...
Guardados los cambios y recargada la configuración, el servicio atenderá las conexiones en el nuevo puerto.
Recuerda añadir la nueva regla en el firewall, en el caso de UFW:
~$ sudo ufw allow 33322/tcp
Si tenías el firewall configurado para el puerto estándar, es recomendable eliminar la regla correspondiente.
Ahora tendrás que especificar este nuevo puerto en las conexiones, ya que por defecto los clientes asumen el puerto estándar:
~$ ssh debian10.local -p 33322
Cualquiera que escanee todos los puertos de tu servidor acabará encontrando el nuevo puerto en el que escucha el servicio, pero esto lo hace un mínimo porcentaje de los usuarios que constantemente intentan iniciar sesión maliciosamente.
Cómo copiar archivos entre sistemas usando SSH
Puedes copiar archivos entre una máquina local y otra remota con SSH usando el comando scp. La sintaxis de este comando es similar a la del comando cp:
~$ scp [parámetros-adicionales] <ruta-origen> <ruta-destino>
Pero en este caso, cualquiera de las dos rutas puede ser remota, siguiendo el esquema usuario@host:ruta-remota. Por ejemplo, queremos copiar el archivo datos.txt del directorio de trabajo local en el directorio documentos/ del usuario paco en la máquina remota. Podríamos hacerlo así:
~$ scp datos.txt paco@debian10.local:documentos paco@debian10.local's password: datos.txt 100% 0 0.0KB/s 00:00 ~$
Si la máquina remota Debian 10 tiene el servicio SSH configurado en un puerto alternativo, debes indicarlo con el parámetro -P:
~$ scp -P 33322 datos.txt paco@debian10.local:documentos
Si estás usando una cuenta local con el mismo nombre que la cuenta remota, no hace falta indicar el usuario:
~$ scp datos.txt debian10.local:documentos
La ruta remota puede ser absoluta, comenzando por /, o relativa al directorio personal si no comienza por /.
Igualmente puedes copiar archivos desde el sistema remoto al local:
~$ scp paco@debian10.local:/etc/passwd . paco@debian10.local's password: passwd 100% 1453 614.0KB/s 00:00 ~$
En este caso hemos copiado el archivo remoto /etc/passwd (que tiene permisos de lectura para todo el mundo) en el directorio de trabajo local.
Conclusión
Ahora que ya sabes cómo instalar y configurar SSH en Debian 10 Buster puedes administrar remotamente y de forma segura tu servidor o VPS Debian, además de transferir archivos sin necesidad de aplicaciones auxiliares.
Si tienes dudas, sugerencias, preguntas, etc. puedes dejar un comentario.
Ah, y si esta guía de instalación y configuración de SSH en Debian 10 Buster te ha salvado el día y quieres agradecérmelo, puedes hacerlo deajando 1 $ de propina desde PayPal:
¡Gracias!
Gracias por estos pequeños tutoriales de las cosas que para un usuario avanzado serán muy sencillas, pero a muchos nos sacan del apuro.
¡De nada, Raúl!
Muchas gracias, primera vez que hago algo de esto con SSH y sale todo bien. Gracias, bendiciones.
Estupendo, Pedro, me alegro de que ya tengas funcionando SSH en Debian 10.