Guía básica de comandos SSH para administradores de servidores
Bienvenido, administrador. Si estás leyendo esto, probablemente ya sabes que SSH es la navaja suiza de la administración de servidores. No importa si gestionas un VPS, un servidor dedicado o un panel como Syspanel (accesible por el puerto 2106), dominar los comandos básicos de SSH te dará el control total de tu máquina.
Esta guía está diseñada para que, incluso si nunca has usado una terminal, puedas conectarte, moverte por el sistema, gestionar archivos y reforzar la seguridad de tu servidor. Vamos a ello.
¿Qué es SSH y por qué es esencial?
SSH (Secure Shell) es un protocolo de red que te permite acceder a la línea de comandos de un servidor de forma segura, encriptando toda la comunicación. Para un SysAdmin, es la herramienta principal para realizar tareas de mantenimiento, instalación de software, configuración y resolución de problemas.
[INFO] A diferencia de un panel web como Syspanel (que usa el puerto 2106 para su interfaz gráfica), SSH opera normalmente en el puerto 22 y te da acceso directo al sistema operativo.
Primeros pasos: Conectarse a tu servidor
1. Conexión básica desde tu terminal
Para conectarte, usa el siguiente comando desde tu máquina local (Linux o macOS, o desde PowerShell en Windows):
ssh usuario@direccion_ip_del_servidor
Ejemplo:
ssh admin@192.168.1.100
Si es la primera vez que te conectas, te pedirá confirmar la huella digital del servidor. Escribe yes y presiona Enter.
[TIP] Si usas Windows, puedes instalar OpenSSH desde Configuración > Aplicaciones > Características opcionales, o usar herramientas como PuTTY.
2. Conexión con un puerto personalizado
Muchos administradores cambian el puerto SSH por seguridad. Si tu servidor usa un puerto diferente al 22, especifícalo con el flag -p:
ssh -p 2200 usuario@direccion_ip
3. Conexión usando clave SSH (más seguro que contraseña)
Genera un par de llaves en tu máquina local:
ssh-keygen -t rsa -b 4096
Luego, copia la llave pública al servidor:
ssh-copy-id usuario@direccion_ip
A partir de ahora, podrás conectarte sin contraseña.
[WARNING] Nunca compartas tu llave privada. Si alguien la obtiene, tendrá acceso completo a tu servidor.
Navegación y gestión básica de archivos
Una vez dentro, te encuentras en el directorio home de tu usuario (/home/usuario). Aquí tienes los comandos esenciales para moverte y gestionar archivos.
Comandos de navegación
pwd– Muestra la ruta del directorio actual.ls– Lista los archivos y carpetas. Usals -lapara ver detalles y archivos ocultos.cd– Cambia de directorio. Ejemplo:cd /var/wwwcd ..– Sube un nivel en el árbol de directorios.
Gestión de archivos y carpetas
mkdir nombre_carpeta– Crea una nueva carpeta.touch archivo.txt– Crea un archivo vacío.cp origen destino– Copia archivos. Ejemplo:cp index.html backup/mv origen destino– Mueve o renombra archivos.rm archivo– Elimina un archivo. Para carpetas usarm -r carpeta.cat archivo– Muestra el contenido de un archivo en pantalla.nano archivo– Abre el editor de texto Nano para editar archivos.
[INFO] Para editar archivos de configuración del sistema (como los de Nginx o Apache), necesitarás permisos de superusuario. Usa sudo nano /etc/nginx/nginx.conf.
Gestión de usuarios y permisos
Como administrador, controlar quién puede hacer qué es fundamental.
Comandos de usuarios
whoami– Muestra el usuario actual.adduser nombre_usuario– Crea un nuevo usuario.passwd nombre_usuario– Cambia la contraseña de un usuario.userdel nombre_usuario– Elimina un usuario.groups nombre_usuario– Muestra los grupos a los que pertenece.
Permisos de archivos
Cada archivo y carpeta tiene tres niveles de permisos: propietario, grupo y otros. Se representan con números (modo octal).
chmod 755 archivo– Da permisos de lectura, escritura y ejecución al propietario, y solo lectura y ejecución al grupo y otros.chown usuario:grupo archivo– Cambia el propietario y grupo de un archivo.
[TIP] Para hacer que un script sea ejecutable, usa chmod +x script.sh.
Superusuario (sudo) y tareas administrativas
Muchas tareas requieren permisos elevados. El comando sudo te permite ejecutar comandos como superusuario.
sudo comando– Ejecuta un comando como root.sudo -i– Inicia una sesión como root (cuidado, es poderoso).sudo -l– Muestra los comandos que tu usuario puede ejecutar con sudo.
Comandos esenciales de administración
apt update && apt upgrade– Actualiza la lista de paquetes y los instala (en Debian/Ubuntu).systemctl status servicio– Verifica el estado de un servicio (ej:systemctl status nginx).systemctl restart servicio– Reinicia un servicio.df -h– Muestra el uso del disco en formato legible.free -h– Muestra el uso de la memoria RAM.topohtop– Muestra los procesos en ejecución y el consumo de recursos.
[WARNING] No uses sudo a menos que sea necesario. Un error con permisos de root puede dejar el servidor inservible.
Seguridad básica del servidor vía SSH
Proteger tu servidor empieza por asegurar el acceso SSH.
1. Cambiar el puerto SSH por defecto
Edita el archivo de configuración de SSH:
sudo nano /etc/ssh/sshd_config
Busca la línea #Port 22 y cámbiala a un puerto alto, por ejemplo Port 2222. Luego reinicia el servicio:
sudo systemctl restart sshd
[INFO] Recuerda actualizar las reglas de tu firewall para permitir el nuevo puerto.
2. Deshabilitar el acceso root por SSH
En el mismo archivo, busca PermitRootLogin y cámbialo a no. Esto obliga a usar un usuario normal y luego hacer sudo.
3. Usar autenticación por llave y deshabilitar contraseñas
Si ya configuraste las llaves SSH, busca PasswordAuthentication y cámbialo a no.
4. Configurar un firewall básico con UFW
sudo ufw allow 2222/tcp # Puerto SSH personalizado
sudo ufw enable
[TIP] También puedes permitir el puerto de Syspanel (2106) si lo usas: sudo ufw allow 2106/tcp.
Comandos avanzados para diagnóstico y monitoreo
Cuando algo falla, estos comandos te ayudarán a encontrar la causa.
ping google.com– Verifica conectividad a internet.traceroute google.com– Muestra la ruta que siguen los paquetes.netstat -tulpnoss -tulpn– Muestra los puertos en escucha y los servicios asociados.journalctl -xe– Muestra los logs del sistema (ideal para errores recientes).dmesg | tail– Muestra mensajes del kernel (útil para hardware o errores de disco).
Preguntas frecuentes (FAQ)
1. ¿Qué hago si olvido la contraseña de mi usuario?
Si tienes acceso físico o a un panel de rescate (como el que ofrece Syspanel en el puerto 2106), puedes reiniciar el servidor en modo rescate y montar el sistema para cambiar la contraseña. También puedes usar sudo passwd usuario si tienes otro usuario con permisos sudo.
2. ¿Cómo saber si mi servidor ha sido hackeado?
Busca procesos extraños con top, revisa los intentos de login fallidos con lastb o journalctl -u ssh, y verifica archivos modificados recientemente con find / -mtime -1 -type f.
3. ¿Debo cerrar la sesión SSH después de usarla?
Sí, siempre. Usa exit o logout. Dejar sesiones abiertas consume recursos y es un riesgo de seguridad.
4. ¿Puedo usar SSH desde un celular?
Sí, hay apps como Termux (Android) o Termius (iOS) que permiten conexiones SSH.
5. ¿Qué es Syspanel y cómo accedo a él?
Syspanel es un panel de control para servidores (como HestiaCP) que se accede mediante el puerto 2106. Ejemplo: https://tu-servidor.com:2106. Desde allí puedes gestionar sitios web, bases de datos y usuarios sin necesidad de SSH.
Conclusión
Dominar estos comandos SSH te convertirá en un SysAdmin más eficiente y seguro. Recuerda siempre:
- Usa llaves SSH en lugar de contraseñas.
- Cambia el puerto SSH por defecto.
- No ejecutes comandos sin entender qué hacen.
- Mantén actualizado tu sistema con
apt update && apt upgrade.
La práctica hace al maestro. Conecta a tu servidor, prueba cada comando y no tengas miedo de equivocarte (en un entorno de pruebas, claro). Con el tiempo, estos comandos se volverán parte de tu memoria muscular.
[TIP] Si usas Syspanel, recuerda que su puerto es el 2106. Para tareas más finas y de seguridad, SSH sigue siendo tu mejor aliado. ¡Buena suerte y feliz administración!
