🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo configurar SSH en Linux

Actualizado el 31 de agosto de 2025

¿Qué es SSH y por qué te va a cambiar la vida?

Seguro que has oído hablar de SSH, pero quizás no tienes claro qué es exactamente. SSH (Secure Shell) es un protocolo de red que te permite conectarte de forma segura a otro equipo, normalmente un servidor Linux, como si estuvieras sentado delante de él. La magia está en que toda la comunicación viaja cifrada, así que nadie puede espiar lo que haces.

Cuando aprendes a configurar ssh en tu máquina, abres la puerta a un mundo de posibilidades: administrar un servidor web, subir archivos, ejecutar comandos remotos o incluso crear túneles para acceder a servicios internos. Y lo mejor de todo es que, una vez que lo dominas, se convierte en algo tan natural como abrir una terminal local.

En esta guía vamos a explicarte paso a paso cómo configurar ssh linux desde cero. No necesitas ser un gurú de la línea de comandos, solo tener paciencia y seguir las instrucciones con calma. Al final, tendrás un acceso remoto ssh funcionando con llaves criptográficas, que es la forma más segura y cómoda de trabajar.

Requisitos previos antes de empezar

Para seguir esta guía necesitas tener un par de cosas claras. No te preocupes, son básicas y probablemente ya las tengas:

  • Un equipo con Linux instalado (puede ser tu PC personal o un servidor en la nube).
  • Acceso de superusuario (sudo) en ese equipo, al menos al principio.
  • Conocimientos mínimos de terminal: saber navegar entre carpetas y editar archivos con nano o vim.

Si vas a conectarte a un servidor remoto, necesitarás también la IP pública o el nombre de dominio de ese servidor. Y si estás detrás de un router, asegúrate de tener el puerto 22 abierto hacia tu máquina, aunque esto solo es necesario si quieres conectarte desde fuera de tu red local.

Instalación del servicio SSH en Linux

Lo primero es comprobar si ya tienes el servicio ssh instalado. En la mayoría de distribuciones modernas, el servidor SSH no viene activado por defecto, pero el cliente sí. Para verificarlo, abre una terminal y escribe:

ssh -V

Si te muestra la versión, tienes el cliente instalado. Ahora vamos a por el servidor. Dependiendo de tu distribución, los comandos cambian un poco. Te muestro los casos más comunes:

En Debian/Ubuntu

sudo apt update
sudo apt install openssh-server

En CentOS/RHEL/Fedora

sudo dnf install openssh-server

En Arch Linux

sudo pacman -S openssh

Una vez instalado, necesitas iniciar el servicio y asegurarte de que se active automáticamente al arrancar el sistema:

sudo systemctl start sshd
sudo systemctl enable sshd

En algunas distribuciones el servicio se llama ssh en lugar de sshd. Si te da error, prueba con sudo systemctl start ssh.

Puedes verificar que todo funciona con:

sudo systemctl status sshd

Deberías ver algo como "active (running)". Si tienes un firewall activo (ufw o firewalld), tendrás que permitir el tráfico en el puerto 22. Por ejemplo, con ufw:

sudo ufw allow ssh

Configuración básica del servicio SSH

Ahora que el servicio está corriendo, es hora de personalizarlo. El archivo de configuración principal se encuentra en /etc/ssh/sshd_config. Antes de tocar nada, te recomiendo hacer una copia de seguridad:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

Para editarlo, usa tu editor favorito:

sudo nano /etc/ssh/sshd_config

Aquí tienes algunos parámetros que conviene revisar:

  • Port: por defecto es 22. Puedes cambiarlo a otro número para dificultar ataques automáticos, pero asegúrate de recordarlo.
  • PermitRootLogin: es recomendable ponerlo en no para evitar que el usuario root acceda directamente por SSH.
  • PasswordAuthentication: si quieres usar solo llaves, ponlo en no. Pero espera a tener las llaves configuradas antes de hacer este cambio.
  • PubkeyAuthentication: debe estar en yes para permitir el acceso con llaves.

Un ejemplo de configuración segura podría ser:

Port 22
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication yes

Guarda el archivo y reinicia el servicio para aplicar los cambios:

sudo systemctl restart sshd

Generar llaves SSH: tu llave maestra

Las llaves ssh son un par de archivos criptográficos que te permiten identificarte sin necesidad de contraseña. Es como tener una llave física y una cerradura: una parte se queda en tu equipo (la privada) y la otra se copia al servidor (la pública). Es mucho más seguro que usar contraseñas, porque la llave privada nunca viaja por la red.

Para generar tus llaves, ejecuta:

ssh-keygen -t rsa -b 4096

Te preguntará dónde guardarlas. Acepta la ubicación por defecto (~/.ssh/id_rsa). Luego te pedirá una frase de contraseña (passphrase). Puedes dejarla vacía, pero te recomiendo poner una, aunque sea corta. Así, si alguien roba tu llave privada, no podrá usarla sin la frase.

Verás que se crean dos archivos en ~/.ssh/:

  • id_rsa: tu llave privada, que no debes compartir jamás.
  • id_rsa.pub: tu llave pública, que puedes copiar a los servidores.

Copiar la llave pública al servidor

Ahora viene el momento de instalar tu llave pública en el servidor al que quieres acceder. Hay varias formas de hacerlo, pero la más sencilla es usar el comando ssh-copy-id:

ssh-copy-id usuario@ip-del-servidor

Te pedirá la contraseña del usuario en el servidor y, automáticamente, copiará tu llave pública al archivo ~/.ssh/authorized_keys del servidor. A partir de ese momento, podrás conectarte sin escribir contraseña.

Si no tienes ssh-copy-id, puedes hacerlo manualmente:

cat ~/.ssh/id_rsa.pub | ssh usuario@ip-del-servidor "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Este comando crea la carpeta .ssh en el servidor si no existe, y añade tu llave pública al final del archivo authorized_keys.

[TIP] Si vas a gestionar varios servidores, puedes tener un archivo ~/.ssh/config donde definas alias para cada uno. Así solo escribes ssh mi-servidor y se conecta automáticamente con la IP, usuario y llave correctos.

Conectarse por SSH por primera vez

Llega el momento de la verdad. Para conectarte a tu servidor, usa:

ssh usuario@ip-del-servidor

La primera vez, te aparecerá un mensaje preguntando si confías en la huella del servidor. Escribe yes y pulsa Enter. Esto guarda la huella en tu archivo ~/.ssh/known_hosts para futuras conexiones.

Si configuraste todo bien, entrarás directamente sin pedir contraseña. Si no, te la pedirá. A partir de aquí, ya tienes acceso remoto ssh funcional.

Desactivar la autenticación por contraseña (opcional pero recomendado)

Una vez que confirmes que las llaves funcionan, puedes aumentar la seguridad desactivando el acceso por contraseña. Edita de nuevo /etc/ssh/sshd_config y cambia:

PasswordAuthentication no

Guarda y reinicia el servicio:

sudo systemctl restart sshd

[WARNING] Asegúrate de que tu llave funciona antes de hacer esto. Si algo sale mal, podrías quedarte fuera del servidor. Siempre ten una sesión abierta mientras pruebas el reinicio.

Solucionar problemas comunes con SSH

A veces las cosas no salen a la primera. Aquí tienes los problemas más frecuentes y cómo resolverlos:

"Connection refused"

Esto significa que el puerto 22 no está abierto o el servicio no está corriendo. Verifica con sudo systemctl status sshd y revisa el firewall.

"Permission denied (publickey)"

Tu llave no está siendo aceptada. Comprueba que la llave pública está en ~/.ssh/authorized_keys en el servidor y que los permisos son correctos. La carpeta .ssh debe tener permisos 700 y el archivo authorized_keys debe tener 600.

"Host key verification failed"

Esto ocurre cuando el servidor cambió su huella (por ejemplo, si lo reinstalaste). Edita ~/.ssh/known_hosts y elimina la línea correspondiente a ese servidor, o usa ssh-keygen -R ip-del-servidor.

SSH en el día a día: trucos y usos avanzados

Una vez que dominas lo básico, hay un montón de cosas útiles que puedes hacer con SSH:

Copiar archivos con scp

scp archivo.txt usuario@ip-del-servidor:/ruta/destino/

Montar una carpeta remota con sshfs

sudo apt install sshfs
sshfs usuario@ip-del-servidor:/carpeta/remota /carpeta/local

Crear un túnel SSH

ssh -L 8080:localhost:80 usuario@ip-del-servidor

Esto redirige el puerto 8080 de tu máquina al puerto 80 del servidor, útil para acceder a paneles de administración.

Mantener sesiones persistentes con screen o tmux

Estas herramientas te permiten dejar procesos corriendo en el servidor aunque cierres la conexión. Son imprescindibles para tareas largas.

SSH y paneles de control: un caso práctico

Si estás gestionando un servidor con un panel de control como Syspanel (accesible por el puerto 2106), SSH te será imprescindible para tareas de mantenimiento. Por ejemplo, para reiniciar servicios, ver logs o hacer copias de seguridad. El panel te da una interfaz gráfica, pero SSH te da el control total.

[INFO] Syspanel es una herramienta de gestión de hosting que puedes administrar desde el navegador en el puerto 2106, pero muchas tareas avanzadas se hacen mejor desde la terminal con SSH.

Preguntas frecuentes (FAQ)

¿Puedo usar SSH en Windows?

Sí, desde Windows 10 puedes usar OpenSSH directamente desde PowerShell o CMD. También existen clientes como PuTTY.

¿Es seguro dejar el puerto 22 abierto?

Depende. Si usas llaves y desactivas la contraseña, es bastante seguro. Además, puedes instalar herramientas como fail2ban para bloquear IPs sospechosas.

¿Qué hago si olvido mi passphrase?

No hay forma de recuperarla. Tendrás que generar un nuevo par de llaves y copiar la nueva llave pública al servidor.

¿Puedo cambiar el puerto de SSH?

Sí, edita /etc/ssh/sshd_config y cambia la línea Port. Recuerda actualizar tu firewall y usar el nuevo puerto al conectarte: ssh -p 2222 usuario@ip.

¿Cómo sé si mi servidor tiene SSH activo?

Ejecuta sudo systemctl status ssh o sudo netstat -tlnp | grep :22. Si ves algo escuchando en el puerto 22, está activo.

Conclusión: ya eres un maestro de SSH

Enhorabuena, has llegado al final de esta guía completa sobre cómo configurar ssh en Linux. Ahora sabes instalar el servicio, generar llaves, conectarte de forma segura y solucionar los problemas más comunes. Con esto, tienes las bases para administrar cualquier servidor Linux con total confianza.

Recuerda que SSH es una herramienta potentísima, pero también requiere responsabilidad. Usa siempre llaves en lugar de contraseñas, mantén tu sistema actualizado y no compartas tus llaves privadas con nadie. Con estos hábitos, tu acceso remoto ssh será rápido, cómodo y sobre todo, seguro.

Si te ha quedado alguna duda, repasa los pasos o busca en la documentación oficial de tu distribución. La práctica hace al maestro, así que no tengas miedo de experimentar en un entorno de pruebas. ¡Nos vemos en la terminal!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel