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

Guía para usar SSH en Linux: Conexión y seguridad

Actualizado el 15 de marzo de 2026

¿Qué es SSH y por qué lo necesitas?

SSH (Secure Shell) es un protocolo de red que te permite conectarte de forma segura a un servidor Linux remoto, como si estuvieras sentado frente a él. Piensa en él como una puerta blindada hacia tu servidor: todo lo que viaja entre tu ordenador y el servidor va cifrado, lo que significa que nadie puede espiar tus contraseñas, comandos o datos mientras se transmiten.

Para cualquier persona que gestione un sitio web, un servidor o simplemente quiera administrar un sistema Linux a distancia, ssh linux es una herramienta imprescindible. Sin SSH, estarías enviando información sensible en texto plano, algo tan peligroso como enviar una postal con tu contraseña escrita.

En esta guía te enseñaremos desde cero cómo conectar por ssh, cómo configurar las claves ssh para una autenticación más segura y rápida, y qué medidas debes tomar para blindar tu servidor con una buena seguridad ssh.


Requisitos previos para usar SSH en Linux

Antes de empezar, asegúrate de tener lo siguiente:

  • Un servidor Linux (puede ser un VPS, un servidor dedicado o incluso un equipo local con Linux).
  • Un ordenador cliente con Linux, macOS o Windows 10/11 (en Windows puedes usar PowerShell o la terminal de Windows).
  • Dirección IP o nombre de dominio del servidor.
  • Credenciales de acceso (usuario y contraseña, o una clave pública que hayas configurado previamente).

Si estás usando un panel de control como Syspanel (antes conocido como HestiaCP), ten en cuenta que el acceso SSH se gestiona desde el servidor, no desde el panel. El panel usa el puerto 2106 para su interfaz web, pero SSH por defecto usa el puerto 22, aunque esto puede cambiarse por seguridad.


Cómo conectarse por SSH desde Linux (paso a paso)

1. Abre tu terminal

En la mayoría de distribuciones Linux, puedes abrir la terminal con el atajo Ctrl + Alt + T. En macOS, busca "Terminal" en Launchpad. En Windows, abre PowerShell o la Terminal de Windows.

2. Usa el comando SSH básico

El comando básico tiene esta estructura:

ssh usuario@direccion_ip

Por ejemplo, si tu usuario es root y la IP es 192.168.1.100, escribirías:

ssh root@192.168.1.100

Si es la primera vez que te conectas a ese servidor, verás un mensaje como este:

The authenticity of host '192.168.1.100' can't be established.
ECDSA key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no)?

Escribe yes y pulsa Enter. Esto guarda la huella del servidor en tu archivo known_hosts para futuras conexiones.

3. Introduce tu contraseña

A continuación, el sistema te pedirá la contraseña del usuario. Escríbela y pulsa Enter. No verás los caracteres mientras escribes, es normal, es una medida de seguridad.

4. ¡Ya estás dentro!

Si todo ha ido bien, verás el prompt del servidor, algo como root@servidor:~# o usuario@servidor:~$. A partir de aquí, puedes ejecutar comandos como si estuvieras físicamente en el servidor.

5. Salir de la sesión SSH

Para cerrar la conexión, escribe exit y pulsa Enter, o usa el atajo Ctrl + D.


Conectar por SSH con un puerto personalizado

Por defecto, SSH usa el puerto 22. Sin embargo, muchos administradores cambian este puerto para evitar ataques automatizados. Si tu servidor usa un puerto distinto, indica el puerto con la opción -p:

ssh -p 2222 usuario@direccion_ip

Por ejemplo, si tu servidor escucha en el puerto 2222, el comando sería:

ssh -p 2222 admin@midominio.com

[INFO] Si usas Syspanel, recuerda que el acceso web al panel es por el puerto 2106, pero esto no tiene relación con el puerto de SSH. El puerto SSH se configura en el archivo /etc/ssh/sshd_config.


Claves SSH: la forma más segura y cómoda de autenticarse

Las contraseñas son cómodas, pero tienen un problema: pueden ser adivinadas, robadas o interceptadas. Las claves ssh resuelven esto usando un par de llaves criptográficas: una pública (que se coloca en el servidor) y una privada (que se guarda en tu ordenador). La clave privada nunca viaja por la red, así que es prácticamente imposible de interceptar.

1. Genera un par de claves SSH

En tu ordenador local, ejecuta:

ssh-keygen -t ed25519 -C "tu_correo@ejemplo.com"

También puedes usar RSA si tu sistema es antiguo:

ssh-keygen -t rsa -b 4096 -C "tu_correo@ejemplo.com"

El parámetro -C es solo un comentario para identificar la clave, no es obligatorio.

2. Sigue las indicaciones

El sistema te preguntará dónde guardar la clave. La ruta por defecto es ~/.ssh/id_ed25519 (o id_rsa). Pulsa Enter para aceptarla.

Luego te pedirá una frase de contraseña (passphrase). Aquí tienes dos opciones:

  • Déjala vacía (pulsa Enter dos veces): más cómodo, pero si alguien roba tu clave privada, podrá usarla sin restricciones.
  • Pon una frase larga y única: más seguro, te la pedirá cada vez que uses la clave.

[TIP] Siempre es recomendable usar una frase de contraseña. Si te preocupa la comodidad, puedes usar un agente SSH (ssh-agent) para no tener que escribirla constantemente.

3. Copia la clave pública al servidor

Ahora necesitas colocar tu clave pública en el servidor. La forma más sencilla es usar ssh-copy-id:

ssh-copy-id usuario@direccion_ip

Este comando te pedirá tu contraseña actual (la del servidor) y copiará automáticamente la clave pública al archivo ~/.ssh/authorized_keys del servidor.

Si ssh-copy-id no está disponible, puedes hacerlo manualmente:

cat ~/.ssh/id_ed25519.pub | ssh usuario@direccion_ip "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

4. Conecta sin contraseña

A partir de ahora, cuando te conectes por SSH, el servidor reconocerá tu clave y no te pedirá contraseña (solo la frase de contraseña de tu clave privada, si la has puesto).


Seguridad SSH: buenas prácticas imprescindibles

La seguridad ssh no es opcional si tu servidor está expuesto a internet. Cada día, bots automatizados intentan conectarse a servidores SSH con combinaciones de usuario/contraseña comunes. Aquí tienes una lista de medidas para blindar tu servidor.

1. Desactiva el acceso root por SSH

El usuario root tiene privilegios totales, y es el principal objetivo de los atacantes. Es mucho más seguro crear un usuario normal y usar sudo para tareas administrativas.

Para desactivar el acceso root, edita el archivo de configuración:

sudo nano /etc/ssh/sshd_config

Busca la línea PermitRootLogin y cámbiala a:

PermitRootLogin no

Luego reinicia el servicio:

sudo systemctl restart sshd

2. Usa autenticación por claves y desactiva la contraseña

Una vez que hayas configurado las claves ssh, puedes desactivar la autenticación por contraseña. Esto hace que sea casi imposible que alguien entre sin tu clave privada.

En el mismo archivo sshd_config, busca:

PasswordAuthentication yes

y cámbialo a:

PasswordAuthentication no

[WARNING] Antes de hacer esto, asegúrate de que las claves funcionan correctamente. Si te equivocas y no tienes la clave bien configurada, podrías quedarte fuera de tu propio servidor. Siempre mantén una sesión SSH abierta mientras pruebas.

3. Cambia el puerto SSH por defecto

Cambiar el puerto 22 a otro número (por ejemplo, 2222) reduce drásticamente los ataques automatizados, ya que la mayoría de los bots solo escanean el puerto estándar.

Cambia la línea:

Port 22

por:

Port 2222

Y recuerda que a partir de ahora tendrás que especificar el puerto en cada conexión:

ssh -p 2222 usuario@servidor

4. Configura un cortafuegos (firewall)

Usa ufw (Uncomplicated Firewall) en Ubuntu/Debian para permitir solo el tráfico necesario:

sudo ufw allow 2222/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Si usas Syspanel, recuerda abrir también el puerto 2106 para acceder al panel web:

sudo ufw allow 2106/tcp

5. Usa Fail2ban para bloquear intentos fallidos

Fail2ban es una herramienta que monitorea los logs de SSH y bloquea automáticamente las IPs que hagan demasiados intentos fallidos.

Instálalo:

sudo apt install fail2ban

Configura una copia del archivo de configuración:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Edita el archivo jail.local y busca la sección [sshd]. Asegúrate de que esté activada:

[sshd]
enabled = true
maxretry = 5
bantime = 3600

Reinicia el servicio:

sudo systemctl restart fail2ban

6. Mantén el sistema actualizado

Las vulnerabilidades en OpenSSH aparecen de vez en cuando. Mantén tu sistema al día:

sudo apt update && sudo apt upgrade

Preguntas frecuentes (FAQ) sobre SSH en Linux

¿Qué hago si me olvidé la contraseña de mi servidor?

Si tienes acceso físico al servidor o acceso a un panel de control (como Syspanel), puedes resetear la contraseña desde ahí. Si el servidor es un VPS, muchos proveedores ofrecen un modo de rescate o la posibilidad de montar el disco para editar la configuración.

¿Cómo sé si SSH está corriendo en mi servidor?

Ejecuta:

sudo systemctl status sshd

Si no está activo, inícialo con:

sudo systemctl start sshd

¿Puedo usar SSH en Windows?

Sí, desde Windows 10 en adelante, PowerShell y la Terminal de Windows incluyen el cliente SSH nativo. Solo abre PowerShell y usa el mismo comando ssh.

¿Qué diferencia hay entre SSH y Telnet?

Telnet es el protocolo antiguo que envía todo en texto plano (sin cifrar). SSH lo reemplazó por su seguridad. Nunca uses Telnet para administrar un servidor remoto.

¿Cómo puedo copiar archivos usando SSH?

Puedes usar scp (secure copy) o rsync:

scp archivo.txt usuario@servidor:/ruta/destino/

Para copiar una carpeta completa:

scp -r carpeta_local/ usuario@servidor:/ruta/destino/

¿Qué es el archivo known_hosts?

Es un archivo que guarda las huellas digitales de los servidores a los que te has conectado. Si la huella de un servidor cambia (por ejemplo, si reinstalas el sistema), SSH te avisará para evitar ataques de intermediario.

¿Puedo usar SSH con Syspanel?

Sí, Syspanel no interfiere con SSH. De hecho, te recomendamos usar SSH para tareas avanzadas que el panel no permite. Recuerda que el acceso al panel es por el puerto 2106, pero SSH usa su propio puerto (normalmente 22 o el que hayas configurado).


Conclusión y siguientes pasos

Dominar ssh linux es una habilidad fundamental para cualquier administrador de sistemas o desarrollador web. Con lo que has aprendido hoy, ya puedes:

  • Conectar por ssh a tu servidor desde cualquier lugar.
  • Configurar claves ssh para una autenticación segura y sin contraseñas.
  • Aplicar medidas básicas de seguridad ssh para proteger tu servidor de ataques.

La seguridad es un proceso continuo. Te recomendamos revisar periódicamente los logs de autenticación (/var/log/auth.log) y mantener tus sistemas actualizados. Si usas Syspanel, combina la comodidad del panel con el control total que te da SSH para tareas avanzadas.

[TIP] Si quieres llevar tu seguridad al siguiente nivel, investiga sobre autenticación de dos factores (2FA) para SSH, configuraciones de sshd_config más restrictivas y el uso de túneles SSH para cifrar otros protocolos.

Ahora que ya sabes lo básico, ¡anímate a explorar! Crea usuarios, automatiza tareas con scripts, monta túneles SSH... Las posibilidades son infinitas. Y recuerda: con un buen uso de SSH, tu servidor estará tan seguro como una fortaleza medieval, pero mucho más fácil de administrar.

¿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