Formas de conectarse por SSH

Formas de conectarse por SSH

Aprende a instalar el servidor OpenSSH y a conectarte por SSH de 4 formas distintas: por usuario e IP, ejecutando un comando remoto, por puerto personalizado y con fichero de configuración.

FECHA:
ACTUALIZADO:
AUTOR:Jorge Beneyto Castelló
LECTURA:6 MINUTOS DE LECTURA

¿Te has pasado media tarde yendo físicamente al servidor para ejecutar un comando? SSH es la forma estándar y segura de administrar cualquier máquina Linux de forma remota. En esta guía instalamos el servidor OpenSSH y vemos las 4 formas de conectarnos desde el cliente, desde la más básica hasta la que usas en el día a día laboral.

🤔 ¿Qué vamos a conseguir?

  • Un servidor con el servicio SSH funcionando y escuchando en el puerto 22.
  • Capacidad de conectarte desde un cliente remoto a ese servidor de 4 formas distintas.
  • Entender cómo funciona el modelo cliente/servidor de SSH para no volver a tocar la máquina físicamente.

🧰 Prerrequisitos

  • Dos equipos Linux/Windows/WSL en la misma red (o uno solo con el cliente y el servidor en línea).
  • Saber la dirección IP del servidor y el nombre de usuario con el que te vas a conectar.
  • Conocimientos básicos de terminal: ejecutar comandos y usar editor de texto.

Si no tienes dos máquinas a mano, puedes practicar con dos contenedores Docker (más abajo) o conectarte desde tu equipo a sí mismo con ssh usuario@localhost.

🛠️ Instalación del servidor SSH

Instalamos el servidor en el equipo al que queremos conectarnos (Debian/Ubuntu):

sudo apt update
sudo apt install openssh-server

Comprobamos que el servicio quedó arrancado y escuchando:

sudo systemctl enable --now ssh
sudo systemctl status ssh        # estado del servicio
ss -tlnp | grep :22              # puerto 22 a la escucha

En Windows Server o WSL el cliente ya viene instalado (ssh); en WSL el servidor se instala igual con apt install openssh-server y se arranca con sudo service ssh start.

Verificación rápida de que el servidor responde (desde el propio servidor):

ssh usuario@localhost

🐳 Opción Docker: laboratorio para practicar

Si el sistema en el que pruebas no tiene servidor SSH instalable, levanta el laboratorio completo en un minuto:

docker run -d --name ssh-lab -p 2222:22 \
  -e PASSWORD_ACCESS=true \
  -p 22:22 linuxserver/openssh-server

Eso expone el puerto 2222 del contenedor; a partir de ahí conectas igual que a una máquina real (con el puerto de la forma 3). Más información en linuxserver/openssh-server.

🚀 Las 4 formas de conectarte por SSH

En todas ellas el formato es el mismo: ssh <usuario>@<dirección_ip> desde el equipo cliente.

Forma 1: conectarse con un usuario y una IP

La forma tradicional. Abre un terminal en el cliente y escribe:

ssh jorge@192.168.101.1
  • jorge es el usuario del servidor al que quieres entrar.
  • 192.168.101.1 es la IP del servidor.

La primera vez SSH te preguntará si confías en el host (yes / no) y guardará su huella en ~/.ssh/known_hosts. Después te pedirá la contraseña del usuario y ya estás dentro de la terminal remota.

Obtener la dirección IP del servidor

Forma 2: conectarse para ejecutar un solo comando

Si solo necesitas lanzar una acción concreta y desconectarte, pon el comando al final. SSH lo ejecuta en el servidor y cierra la sesión automáticamente:

ssh jorge@192.168.101.1 ls -l /home/jorge
ssh jorge@192.168.101.1 'df -h && systemctl is-active ssh'

Volumen de salida: ves el resultado del comando en tu terminal local sin entrar en la sesión interactiva. Es la base de la automatización con scp, rsync y scripts de despliegue.

Forma 3: señalizar un puerto personalizado

Si el servidor escucha en un puerto distinto del 22 (lo habitual en producción para esconder el servicio), lo indicas con -p:

ssh -p 2222 jorge@192.168.101.1

También puedes forzar un rango de IP en el cliente con -b o limitar la versión de protocolo con -v (modo verboso, muy útil para depurar).

Forma 4: con un fichero de configuración ~/.ssh/config

Cuando administras varios servidores, escribir usuario@IP cada vez cansa. Crea un fichero ~/.ssh/config en el cliente:

Host servidor
    HostName 192.168.101.1
    User jorge
    Port 2222

Y ahora te conectas solo con la palabra que lo identifica:

ssh servidor

Ventajas: no memorizas IPs, puedes añadir IdentityFile (clave privada), ProxyJump (saltar por un bastión) o ServerAliveInterval (mantener la sesión viva). El resto de opciones están documentadas en OpenSSH — man ssh_config.

🧪 Comprobar que todo funciona

  • Conexión interactiva: escribes ssh jorge@192.168.101.1, introduces la contraseña y ves jorge@servidor:~$.
  • Comando remoto: ssh jorge@192.168.101.1 hostname devuelve el nombre del servidor y sale con código 0.
  • Código de salida: echo $? tras un comando remoto debe dar 0; los errores devuelven 255 (SSH) o el código del comando remoto.

⚠️ Errores comunes

ErrorCausaSolución
Connection refusedEl servicio ssh no está arrancado o no escuchasudo systemctl restart ssh y verifica ss -tlnp | grep :22
Permission denied (publickey,password)Usuario o contraseña incorrectosRevisa el usuario (whoami en el servidor) y reinicia sudo systemctl restart ssh
Host key verification failedLa huella del servidor cambióssh-keygen -R 192.168.101.1 y vuelve a conectar
Connection timed outFirewall bloqueando el puerto 22Abre el puerto: sudo ufw allow 22/tcp
ssh: Could not resolve hostnameIP mal escrita o DNSRevisa la IP y que el servidor esté encendido

🪜 Siguiente nivel

Esta guía te deja conectándote por contraseña. La escalera natural de SSH es:

  1. Clave pública/privada — olvídate de las contraseñas y entra solo con tu clave: Conexión mediante clave pública privada.
  2. Copiar archivos entre máquinas con scp y rsync: Copiar archivos entre diferentes usuarios y máquinas.
  3. Túneles y agentes — saltar por un servidor bastión, reenviar puertos y montar sshfs.
  4. Gestión multi-servidor con ~/.ssh/config y tmux para mantener sesiones vivas.

🔗 Enlaces y recursos

COMPARTIR:
ETIQUETADO EN:
COMENTARIOS:

📋 Contenido