Cómo conectar a tu servidor por SSH en Linux
¿Qué es SSH y por qué lo necesitas?
SSH (Secure Shell) es un protocolo que te permite acceder a la terminal de un servidor Linux de forma remota y segura. Piensa en ello como un control remoto para tu servidor, pero desde la línea de comandos. Con SSH puedes administrar archivos, instalar software, reiniciar servicios, monitorear el rendimiento y hacer prácticamente cualquier tarea de SysAdmin básico.
Para cualquier persona que gestione un servidor Linux, saber conectar SSH es una habilidad fundamental. Es la puerta de entrada a la administración remota.
[INFO] Aunque suene técnico, conectar por SSH es más sencillo de lo que parece. Solo necesitas tres cosas: la dirección IP de tu servidor, un usuario (normalmente
rooto uno con permisos) y una contraseña o clave SSH.
En este artículo te guiaré paso a paso para que realices tu primer acceso remoto a un servidor Linux usando SSH desde tu propia máquina con Linux.
Requisitos previos para la conexión SSH
Antes de empezar, asegúrate de tener lo siguiente:
- Un servidor Linux activo: Puede ser un VPS, un servidor dedicado o incluso una máquina virtual en tu red local.
- Dirección IP del servidor: La necesitarás para conectarte. Puede ser una IP pública o privada.
- Credenciales de acceso: El nombre de usuario (por ejemplo,
root) y su contraseña. Si usas claves SSH, necesitarás la clave privada. - Cliente SSH instalado en tu ordenador local: En la mayoría de distribuciones Linux ya viene instalado. Para comprobarlo, abre tu terminal y escribe:
Si ves un número de versión, estás listo. Si no, instálalo con:ssh -Vsudo apt update && sudo apt install openssh-client # En Debian/Ubuntu sudo yum install openssh-clients # En CentOS/RHEL
Paso 1: Abrir la terminal
El primer paso para conectar SSH es abrir la terminal de tu sistema Linux. Puedes hacerlo desde el menú de aplicaciones buscando "Terminal", "Consola" o usando el atajo de teclado Ctrl + Alt + T.
Una vez abierta, verás una línea de comandos que te espera. Aquí es donde escribirás todos los comandos.
Paso 2: El comando básico de SSH
El comando para conectarte a un servidor remoto tiene la siguiente estructura:
ssh usuario@direccion_ip
ssh: Es el comando en sí.usuario: Es el nombre de usuario con el que quieres iniciar sesión en el servidor remoto. Por ejemplo,rootoadmin.@: Separa el usuario de la dirección.direccion_ip: Es la dirección IP pública o privada de tu servidor.
Ejemplo práctico:
Imagina que tu servidor tiene la IP 192.168.1.100 y tu usuario es root. El comando sería:
ssh root@192.168.1.100
[TIP] Si es la primera vez que te conectas a este servidor, SSH te preguntará si confías en la conexión. Verás un mensaje similar a:
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established. ECDSA key fingerprint is SHA256:... Are you sure you want to continue connecting (yes/no)?Escribe
yesy presiona Enter. Esto añade el servidor a tu lista de hosts conocidos. Solo lo harás una vez por servidor.
Paso 3: Iniciar sesión con contraseña
Después de escribir el comando y responder yes al aviso de autenticidad, SSH te pedirá la contraseña del usuario.
root@192.168.1.100's password:
Escribe la contraseña con cuidado. No verás ningún carácter en la pantalla mientras escribes (ni asteriscos, ni puntos). Es normal. Presiona Enter después de escribirla.
Si la contraseña es correcta, verás el prompt del servidor remoto. Algo como:
root@servidor:~#
¡Felicidades! Ya has realizado tu primer acceso remoto por SSH a un servidor Linux. Ahora puedes ejecutar comandos en el servidor como si estuvieras sentado frente a él.
Paso 4: Comandos útiles para empezar
Una vez dentro, aquí tienes algunos comandos básicos de SysAdmin para que te familiarices:
pwd: Muestra la ruta del directorio actual.ls -la: Lista todos los archivos y carpetas, incluyendo los ocultos.cd /ruta/de/carpeta: Cambia de directorio.sudo apt update && sudo apt upgrade(en Debian/Ubuntu): Actualiza la lista de paquetes y el sistema.topohtop: Muestra los procesos en ejecución y el uso de recursos.exit: Cierra la sesión SSH y vuelve a tu terminal local.
[WARNING] Ten cuidado al usar el usuario
root. Tiene todos los permisos, por lo que un error puede ser grave. Es recomendable crear un usuario con permisos sudo para tareas diarias.
Conexión SSH con clave pública (recomendado)
Conectarse con contraseña cada vez es seguro, pero no es lo más práctico ni lo más recomendable para un SysAdmin básico que se conecta a menudo. La alternativa es usar un par de claves SSH: una pública (que se aloja en el servidor) y una privada (que guardas en tu ordenador).
Generar un par de claves SSH
En tu terminal local, escribe:
ssh-keygen -t rsa -b 4096
- Te preguntará dónde guardar la clave. Presiona Enter para usar la ubicación por defecto (
~/.ssh/id_rsa). - Te preguntará por una frase de contraseña (passphrase). Es opcional, pero muy recomendable. Si la pones, la necesitarás cada vez que uses la clave.
Esto creará dos archivos:
id_rsa: Tu clave privada. Nunca la compartas.id_rsa.pub: Tu clave pública. Esta es la que copiarás al servidor.
Copiar la clave pública al servidor
La forma más fácil es usar el comando ssh-copy-id:
ssh-copy-id usuario@direccion_ip
Te pedirá la contraseña del usuario remoto una última vez. Después, la clave pública se añadirá al archivo ~/.ssh/authorized_keys del servidor.
[INFO] Si el comando
ssh-copy-idno está disponible, puedes copiar la clave manualmente:cat ~/.ssh/id_rsa.pub | ssh usuario@direccion_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Conectarse con la clave
A partir de ahora, cuando ejecutes ssh usuario@direccion_ip, ya no te pedirá la contraseña (a menos que hayas puesto una frase de contraseña en tu clave privada). Solo te pedirá la frase de contraseña si la configuraste.
Solución de problemas comunes (FAQ)
Aquí tienes las dudas más frecuentes al conectar SSH:
1. "Connection refused" (Conexión rechazada)
- Causa: El servicio SSH no está corriendo en el servidor o el puerto está bloqueado por un firewall.
- Solución: Verifica que el servidor tenga SSH instalado y activo. Desde el panel de control de tu hosting, asegúrate de que el puerto 22 (o el que uses) esté abierto.
2. "Permission denied (publickey,password)"
- Causa: La contraseña o la clave no son correctas, o el usuario no tiene permisos para acceder por SSH.
- Solución: Revisa que estás usando el usuario y la contraseña correctos. Si usas claves, asegúrate de que la clave pública esté en el servidor y que la privada esté en tu máquina local.
3. "Connection timed out" (Tiempo de espera agotado)
- Causa: El servidor no responde, puede estar apagado, o hay un problema de red.
- Solución: Verifica que el servidor esté encendido y que tengas conectividad a Internet. Prueba hacer ping a la IP:
ping direccion_ip.
4. No recuerdo la contraseña de root
- Causa: La has olvidado o nunca la tuviste.
- Solución: Si tienes acceso a un panel de control (como Syspanel en el puerto 2106), puedes restablecer la contraseña desde allí. Si no, deberás contactar con tu proveedor de hosting.
[WARNING] Nunca compartas tu clave privada SSH ni la subas a repositorios públicos como GitHub. Es como compartir la llave de tu casa.
Consejos de seguridad para SysAdmin básico
- Cambia el puerto SSH por defecto (22): Esto reduce los ataques automatizados. Edita el archivo
/etc/ssh/sshd_configy cambia la líneaPort 22por otro número (ej.Port 2222). Luego reinicia el servicio:sudo systemctl restart sshd. - Desactiva el inicio de sesión con contraseña: Si ya usas claves SSH, puedes desactivar la autenticación por contraseña. En
/etc/ssh/sshd_config, cambiaPasswordAuthentication yesaPasswordAuthentication no. - Usa un firewall: Configura
ufw(en Ubuntu) ofirewalld(en CentOS) para permitir solo el tráfico necesario (puertos 22, 80, 443, y el de Syspanel si lo usas). - Crea un usuario con sudo: No trabajes siempre como
root. Crea un usuario normal y dale permisos sudo.
Conclusión
Saber conectar SSH a un servidor Linux es la base del acceso remoto y una habilidad esencial para cualquier SysAdmin básico. Con los pasos que has aprendido aquí, ya puedes gestionar tu servidor desde cualquier lugar.
Recuerda que la práctica hace al maestro. No tengas miedo de equivocarte; la mayoría de los errores tienen solución. Y si usas un panel como Syspanel (puerto 2106), combínalo con SSH para tener el control total de tu servidor.
¿Tienes alguna duda? ¡Déjala en los comentarios y te ayudaré!
