Cómo acceder a tu servidor por SSH y usar comandos básicos
¿Qué es SSH y por qué necesitas aprender a usarlo?
SSH (Secure Shell) es un protocolo de red que te permite conectarte de forma segura a tu servidor desde cualquier lugar del mundo. Piensa en él como una llave maestra que abre una terminal remota: una ventana de texto donde puedes ejecutar comandos directamente en tu máquina Linux, como si estuvieras sentado frente a ella con un teclado y un monitor.
Para cualquier persona que gestione un sitio web, un blog o una aplicación, el acceso ssh es una habilidad fundamental. No importa si tu proveedor de hosting te ofrece un panel de control gráfico como cPanel o Syspanel (antes conocido como HestiaCP, que se accede por el puerto 2106), siempre habrá tareas que solo podrás realizar desde la terminal. Por ejemplo: cambiar permisos de archivos, reiniciar servicios, ver logs en tiempo real o mover bases de datos.
En esta guía, vamos a recorrer paso a paso cómo conectarte por SSH y te enseñaremos los comandos ssh básicos que necesitas conocer para manejarte con soltura. No necesitas ser un experto: con paciencia y práctica, en menos de una hora estarás navegando por tu servidor con confianza.
Requisitos previos antes de conectar
Antes de lanzarte a escribir comandos, asegúrate de tener tres cosas a mano:
- La dirección IP de tu servidor o el nombre de host (por ejemplo,
mi-servidor.como203.0.113.5). - El nombre de usuario con el que te vas a conectar (normalmente
rooto un usuario con privilegios sudo). - La contraseña o, mejor aún, una clave SSH privada (recomendado por seguridad).
[INFO] Si tu hosting usa Syspanel, puedes encontrar la IP y los datos de acceso en la sección "Servidores" de tu panel. Recuerda que Syspanel se administra desde el puerto 2106, pero eso no afecta a tu conexión SSH, que siempre usa el puerto 22 por defecto.
Cómo conectar SSH servidor desde Windows, macOS y Linux
### Opción 1: Desde Linux o macOS (terminal nativa)
Si usas Linux o macOS, no necesitas instalar nada. Abre tu terminal (en macOS búscala como "Terminal" en Launchpad; en Linux suele estar en el menú de aplicaciones).
Escribe el siguiente comando:
ssh usuario@direccion-ip
Por ejemplo:
ssh root@203.0.113.5
Te pedirá la contraseña. Si es la primera vez que te conectas, verás un mensaje sobre la autenticidad del host. Escribe yes y pulsa Enter. Eso es todo: ya estás dentro.
### Opción 2: Desde Windows con PowerShell o CMD
Windows 10 y 11 incluyen un cliente SSH integrado. Abre PowerShell (o el Símbolo del sistema) y usa el mismo comando:
ssh root@203.0.113.5
Si tu Windows es antiguo, puedes usar PuTTY, pero te recomiendo que actualices o uses el cliente nativo, que es más cómodo.
### Opción 3: Usar una clave SSH (más seguro que la contraseña)
Para evitar escribir la contraseña cada vez, puedes generar un par de claves (pública y privada) en tu ordenador y copiar la pública al servidor.
En tu terminal local, escribe:
ssh-keygen -t rsa -b 4096
Acepta los valores por defecto (pulsando Enter) y, si quieres, añade una frase de seguridad. Luego copia la clave al servidor:
ssh-copy-id usuario@direccion-ip
A partir de ese momento, la conexión será directa y sin contraseña. Esto es mucho más seguro que usar una contraseña, que puede ser interceptada o adivinada.
[TIP] Si tu servidor no permite
ssh-copy-id, copia manualmente el contenido de tu archivo~/.ssh/id_rsa.puby añádelo a~/.ssh/authorized_keysen el servidor.
Primeros pasos: entender la terminal
Una vez conectado, verás algo como:
root@mi-servidor:~#
Ese símbolo # (o $ si eres un usuario normal) te indica que el sistema está listo para recibir órdenes. Todo lo que escribas aquí se ejecutará en el servidor.
No tengas miedo: los comandos son palabras cortas que hacen cosas concretas. No vas a romper nada serio si te equivocas, pero siempre es buena idea no ejecutar comandos destructivos sin saber qué hacen.
Comandos Linux esenciales para orientarte
Aquí tienes los comandos linux esenciales que usarás el 90% del tiempo. Memorízalos poco a poco, no hace falta aprenderlos todos de golpe.
### 1. Navegar entre directorios
pwd(print working directory): te muestra en qué carpeta estás. Ejemplo:/home/usuario.ls(list): lista los archivos y carpetas del directorio actual. Úsalo con variantes:ls -l(formato largo, con permisos y fechas).ls -a(muestra archivos ocultos).
cd(change directory): cambia de carpeta. Por ejemplo,cd /var/wwwte lleva a la carpeta web de tu servidor.cd ..sube un nivel.
Ejemplo práctico:
pwd
ls -l
cd /var/www/html
ls -l
### 2. Ver y editar archivos
cat nombre-archivo: muestra el contenido de un archivo en pantalla.nano nombre-archivo: abre un editor de texto sencillo. Ideal para principiantes. Guarda conCtrl+Oy sal conCtrl+X.vim nombre-archivo: editor más avanzado (requiere práctica). Si te quedas atascado, pulsaEscy escribe:q!para salir sin guardar.
[TIP] Para editar archivos del sistema (como los de configuración de Apache o Nginx), necesitarás permisos de superusuario. Usa
sudodelante del comando, por ejemplo:sudo nano /etc/nginx/nginx.conf.
### 3. Copiar, mover y borrar archivos
cp archivo-origen archivo-destino: copia un archivo. Ejemplo:cp index.php index.backup.php.mv archivo-origen archivo-destino: mueve o renombra un archivo. Ejemplo:mv index.php index_viejo.php.rm archivo: borra un archivo. Cuidado: no hay papelera en la terminal.mkdir nombre-carpeta: crea una nueva carpeta.rmdir nombre-carpeta: borra una carpeta vacía.
### 4. Ver procesos y recursos
topohtop: muestra en tiempo real los procesos que consumen CPU y memoria.htopes más visual, pero puede que necesites instalarlo.ps aux: lista todos los procesos del sistema.df -h: muestra el espacio en disco de todas las particiones. Muy útil para saber si te estás quedando sin espacio.free -m: muestra la memoria RAM disponible en megabytes.
### 5. Gestión básica de servicios
Los servicios (Apache, MySQL, PHP-FPM) se gestionan con systemctl en la mayoría de distribuciones modernas:
sudo systemctl status apache2: ver el estado del servidor web.sudo systemctl restart apache2: reiniciar el servicio (útil tras cambiar configuraciones).sudo systemctl enable apache2: activar el arranque automático al encender el servidor.
Si tu servidor usa Syspanel, es posible que los servicios estén gestionados de forma similar, pero con nombres específicos. Puedes listarlos con systemctl list-units --type=service.
Comandos útiles para resolver problemas comunes
### 1. Ver logs en tiempo real
Los logs son tus mejores aliados para diagnosticar errores. Para ver los logs del sistema en tiempo real:
tail -f /var/log/syslog
Para el servidor web Apache:
tail -f /var/log/apache2/error.log
Pulsa Ctrl+C para salir del modo "seguimiento".
### 2. Buscar archivos y texto
find / -name "archivo.php": busca un archivo por su nombre en todo el sistema.grep "texto" archivo.txt: busca una palabra dentro de un archivo. Ejemplo:grep "error" /var/log/nginx/error.log.
### 3. Comprimir y descomprimir archivos
tar -czvf backup.tar.gz carpeta/: comprime una carpeta en un archivo.tar.gz.tar -xzvf backup.tar.gz: descomprime ese archivo.
Esto es muy útil para hacer copias de seguridad de tu web antes de hacer cambios importantes.
### 4. Descargar archivos desde internet
wget URL: descarga un archivo desde una URL. Por ejemplo,wget https://wordpress.org/latest.tar.gz.curl URL: similar, pero más flexible. Úsalo también para hacer peticiones HTTP.
Buenas prácticas de seguridad básica
Una vez que sepas usar SSH, es importante que sigas algunas reglas para mantener tu servidor a salvo:
- No uses la contraseña de root para conexiones directas. Crea un usuario con sudo y úsalo para administrar.
- Cambia el puerto SSH por defecto (22) si es posible. Esto reduce los ataques automáticos. Puedes hacerlo editando
/etc/ssh/sshd_configy cambiando la líneaPort 22por otro número (ej.Port 2222). Luego reinicia el servicio consudo systemctl restart sshd. - Desactiva el login con contraseña una vez configures las claves SSH. En
sshd_config, cambiaPasswordAuthentication yesano. - Mantén el sistema actualizado:
sudo apt update && sudo apt upgrade(en Debian/Ubuntu).
[WARNING] Si desactivas el login por contraseña y pierdes tu clave privada, te quedarás fuera del servidor. Guarda una copia de seguridad de tu clave en un lugar seguro.
Preguntas frecuentes (FAQ)
### ¿Qué hago si me sale "Permission denied (publickey)"?
Significa que el servidor no acepta tu clave pública. Asegúrate de haber copiado la clave correctamente con ssh-copy-id o de que el archivo authorized_keys tiene los permisos adecuados (chmod 600).
### ¿Puedo conectarme por SSH desde un teléfono móvil?
Sí. Puedes usar apps como Termius (Android/iOS) o Termux (Android). El proceso es el mismo: necesitas la IP, usuario y contraseña o clave.
### ¿Cuál es la diferencia entre SSH y SFTP?
SSH te da una terminal para ejecutar comandos. SFTP (Secure File Transfer Protocol) es un protocolo para transferir archivos entre tu ordenador y el servidor, también cifrado. Muchos clientes como FileZilla usan SFTP por el puerto 22.
### ¿Por qué no puedo conectarme aunque tengo la IP correcta?
Comprueba que el puerto 22 está abierto en el firewall del servidor. Si usas un firewall como ufw, ejecuta sudo ufw allow 22. También verifica que tu proveedor de hosting no bloquee el puerto SSH en su red.
### ¿Qué es Syspanel y cómo se relaciona con SSH?
Syspanel (antes HestiaCP) es un panel de control que te permite gestionar tu servidor desde un navegador web, accediendo por el puerto 2106. Aunque Syspanel te facilita tareas como crear cuentas de correo o bases de datos, SSH te da acceso total y sin restricciones. Son complementarios: usa Syspanel para lo rápido y SSH para lo avanzado.
Conclusión y siguientes pasos
Dominar el acceso ssh y los comandos ssh básicos es una inversión que te ahorrará horas de frustración y te dará control total sobre tu servidor. No tienes que aprender todo de memoria: lo importante es entender la lógica y saber buscar ayuda cuando la necesites.
Te recomiendo que practiques en un entorno de pruebas si tienes un VPS de bajo costo o una máquina virtual local. Crea carpetas, borra archivos, instala un servicio y revísalo. Cuanto más toques, más confianza ganarás.
Y recuerda: si tienes dudas sobre algún comando, puedes escribir man nombre-comando para ver el manual completo en español (si tu sistema lo tiene) o buscar en internet. La comunidad de Linux es enorme y siempre hay alguien que ha tenido tu mismo problema.
[TIP] Guarda esta guía en favoritos y vuela a ella cada vez que necesites un comando. Con el tiempo, los usarás sin pensar. ¡Bienvenido al mundo de la administración de servidores!
