Comandos básicos de SSH: ejemplos, opciones y hoja de referencia rápida
Sep 09, 2026
/
By Faradilla A.
/
11 min de lectura
Los comandos SSH te permiten conectarte de forma segura a un servidor remoto, ejecutar comandos de Linux, transferir archivos, gestionar claves SSH y solucionar problemas de acceso desde la línea de comandos.
Las instrucciones se envían mediante el protocolo Secure Shell, que cifra todo lo que se transmite entre tu ordenador y el servidor. Así, puedes iniciar sesión en un VPS, editar archivos de configuración, reiniciar servicios y transferir backups sin exponer tu contraseña.
Una vez que conozcas la sintaxis y las principales opciones de SSH, podrás conectarte a un servidor y ejecutar comandos de Linux. A partir de ahí, podrás gestionar claves SSH, transferir archivos con SCP, SFTP y rsync, guardar los datos del servidor en un archivo de configuración, crear túneles y solucionar problemas de conexión.
Estos son algunos de los comandos SSH más útiles:
- ssh usuario@servidor – se conecta a un servidor remoto.
- ssh -p puerto usuario@servidor – se conecta mediante un puerto SSH personalizado.
- ssh -i archivo_de_clave usuario@servidor – se conecta con una clave privada.
- ssh usuario@servidor comando – ejecuta un comando remoto sin abrir una sesión completa.
- ssh-keygen – genera claves SSH.
- ssh-copy-id usuario@servidor – copia una clave pública en un servidor.
- scp archivo usuario@servidor:/ruta – copia archivos mediante SSH.
- sftp usuario@servidor – abre una sesión segura de transferencia de archivos.
- ssh -L local:host:remoto usuario@host – crea un túnel SSH con reenvío local de puertos.
- ssh -v usuario@servidor – depura una conexión SSH.
¿Qué son los comandos SSH?
Los comandos SSH son instrucciones que se ejecutan para usar o configurar el protocolo Secure Shell, que cifra la conexión entre tu ordenador y un servidor remoto. El término engloba dos conceptos relacionados:
- Comandos que usan o configuran directamente SSH, como ssh, ssh-keygen, ssh-copy-id, scp y sftp. Los ejecutas en tu ordenador para iniciar una sesión, gestionar claves o transferir archivos.
- Comandos de Linux que se ejecutan después de conectarte al servidor remoto, como ls, cd, cat y rm. Funcionan igual que en cualquier sistema Linux, pero actúan sobre el servidor en lugar de hacerlo en tu ordenador.
En ambos casos, el protocolo SSH cifra todo lo que envías y recibes. Por eso puedes gestionar servidores de forma segura a través de internet.
Cómo conectarte a un servidor remoto con SSH
Para conectarte a un servidor remoto mediante SSH, ejecuta el comando ssh seguido del nombre de usuario y del nombre de host o la dirección IP del servidor. También puedes indicar un número de puerto específico. Esta es la sintaxis básica:
ssh [opciones] usuario@host
Por ejemplo:
ssh -p 2222 usuario@servidor
Cada parte del comando tiene una función:
- Nombre de usuario – el nombre de la cuenta con la que inicias sesión en el servidor, como root o admin.
- Nombre de host – la dirección IP o el nombre de dominio del servidor, como 203.0.113.10 o srv-123.example.com.
- Puerto – el puerto SSH del servidor. El predeterminado es el 22, aunque muchos proveedores utilizan uno personalizado por motivos de seguridad.
Si tienes un VPS de Hostinger, encontrarás los datos de SSH en hPanel. Ve a “VPS”, haz clic en “Gestionar” y abre la pestaña “Resumen”. En “Detalles del VPS” aparecen la dirección IP, el nombre de usuario y la contraseña, listos para copiar.


En macOS, Linux y Windows 10 o versiones posteriores, abre el terminal y pega el comando ssh. Si utilizas una versión anterior de Windows o prefieres un cliente gráfico, usa PuTTY para SSH e introduce el nombre de host, el puerto y los datos de inicio de sesión en la ventana de sesión.

La primera vez que te conectes, SSH mostrará una advertencia con la huella digital del servidor para que confirmes su identidad. Escribe yes solo si confías en el servidor. La huella digital se guardará en el archivo known_hosts y la advertencia no volverá a aparecer a menos que cambie la clave del servidor.
Sintaxis y opciones básicas de los comandos SSH
Los comandos SSH siguen una estructura sencilla: el comando ssh, las opciones que quieras utilizar, el usuario y el servidor y, de forma opcional, el comando que quieras ejecutar en el servidor remoto:
ssh [opciones] usuario@servidor [comando]
Las opciones modifican el comportamiento de SSH. Sirven, por ejemplo, para utilizar un puerto personalizado o una clave SSH concreta, mostrar información detallada para depurar la conexión o redirigir puertos. Estas son algunas de las más útiles para empezar:
| Opción | Para qué sirve | Ejemplo |
|---|---|---|
| -p | Se conecta mediante un puerto SSH personalizado. Es útil si has cambiado el puerto SSH por motivos de seguridad. | ssh -p 2222 usuario@servidor |
| -i | Utiliza un archivo de clave privada concreto. | ssh -i ~/.ssh/id_ed25519 usuario@servidor |
| -v | Activa el modo detallado para depurar la conexión. Añade más v para obtener más información (-vv, -vvv). | ssh -v usuario@servidor |
| -C | Comprime los datos durante la sesión, lo que puede ayudar en conexiones lentas. | ssh -C usuario@servidor |
| -4 o -6 | Fuerza el uso de IPv4 o IPv6. | ssh -4 usuario@servidor |
| -J | Se conecta a través de un servidor de salto. | ssh -J jump@bastion user@target |
| -L | Configura el reenvío de puertos local. | ssh -L 8080:localhost:80 usuario@servidor |
Puedes combinar varias opciones. Por ejemplo, ssh -p 2222 -i ~/.ssh/id_ed25519 usuario@servidor se conecta mediante un puerto personalizado y utiliza una clave concreta.
Comandos básicos de Linux que puedes usar después de conectarte por SSH
Una vez que hayas iniciado sesión, utilizarás comandos de Linux para desplazarte por el servidor, gestionar archivos y comprobar el estado del sistema. Estos comandos se ejecutan en el servidor remoto, no en tu ordenador. A continuación, encontrarás los más habituales agrupados según su función.
Navegación
Después de iniciar sesión, lo primero es saber en qué directorio te encuentras y cómo desplazarte de uno a otro.
- pwd muestra la ruta completa del directorio actual. Es especialmente útil como primer comando cuando accedes a un servidor que no conoces.
pwd
- ls muestra los archivos y directorios del directorio actual. Añade -la para ver también los archivos ocultos, los permisos, los propietarios y los tamaños. Esta información resulta útil al revisar archivos de configuración o directorios de registros.
ls -la /var/log
- cd cambia el directorio actual. Usa cd .. para subir un nivel, cd ~ para ir a tu directorio principal y cd – para volver al directorio anterior.
cd /var/www/html
Creación de archivos y directorios
A menudo tendrás que crear directorios para proyectos, backups o archivos de configuración.
- mkdir crea un directorio. Añade -p para crear directorios anidados de una sola vez sin que se produzca un error si alguno de los directorios superiores ya existe.
mkdir -p /home/user/backups/2025
- touch crea un archivo vacío o actualiza la marca de tiempo de uno existente. Resulta útil para crear archivos provisionales o comprobar los permisos de escritura.
touch /var/www/html/test.txt
Visualización y edición de archivos
Al solucionar problemas en un servidor, es habitual consultar registros y editar archivos de configuración.
- cat muestra todo el contenido de un archivo en pantalla. Es adecuado para archivos cortos. Para registros extensos, utiliza less para poder desplazarte por el contenido.
cat /etc/hostname
- less abre un archivo y permite desplazarte por su contenido. Usa las teclas de flecha o Re Pág y Av Pág para moverte, /palabra para buscar y q para salir.
less /var/log/nginx/error.log
- tail muestra las últimas líneas de un archivo. Añade -f para ver las nuevas líneas a medida que se escriben, una forma habitual de consultar registros en tiempo real.
tail -f /var/log/nginx/access.log
- head muestra las primeras líneas de un archivo. Resulta útil para consultar el inicio de archivos CSV o de registro grandes sin cargar todo su contenido.
head -n 20 /var/log/syslog
- nano abre un editor de texto sencillo directamente en el terminal. Pulsa Ctrl+O para guardar y Ctrl+X para salir. Es uno de los editores más sencillos para principiantes.
nano /etc/nginx/nginx.conf
Gestión de archivos
Estos comandos sirven para copiar, mover, renombrar y eliminar archivos. Algunos pueden sobrescribir datos sin pedir confirmación, así que presta atención antes de ejecutarlos.
- cp copia un archivo o directorio. Añade -r para copiar un directorio y todo su contenido, o -i para pedir confirmación antes de sobrescribir archivos.
cp -r /var/www/html /var/www/html_backup
- mv mueve un archivo o le cambia el nombre. No hay un comando específico para cambiar el nombre de los archivos en Linux. Ten cuidado: si el archivo de destino ya existe, mv lo sobrescribe sin avisar.
mv config.old.conf config.bak
- rm elimina archivos. Añade -r para eliminar un directorio y todo su contenido. rm no envía los archivos a la papelera, sino que los elimina inmediatamente.
rm /tmp/old-log.txt
Nunca ejecutes rm -rf / ni rm -rf /*. Estos comandos eliminan todos los archivos del servidor. Comprueba siempre la ruta antes de ejecutar rm -r, especialmente si utilizas comodines como *.
Búsqueda
Encontrar rápidamente un archivo o una línea concreta dentro de un archivo grande evita tener que revisar todo el contenido manualmente.
- find busca archivos por nombre, tipo, tamaño o fecha. Es una de las herramientas de búsqueda más flexibles de Linux.
find /var/www -name "*.php" -mtime -7
- grep busca una palabra o un patrón dentro de los archivos. Añade -r para buscar de forma recursiva y -i para ignorar la diferencia entre mayúsculas y minúsculas.
grep -ri "error" /var/log/nginx
Archivos comprimidos y descargas
A menudo tendrás que comprimir archivos para crear backups o descargar instaladores de internet.
- tar crea y extrae archivos comprimidos. Uno de sus usos más habituales es tar -czvf para crear un archivo .tar.gz y tar -xzvf para extraerlo.
tar -czvf backup.tar.gz /var/www/html
- wget descarga archivos desde una URL directamente al servidor.
wget https://example.com/installer.sh
- curl también permite descargar archivos y es una herramienta habitual para probar API y respuestas HTTP.
curl -O https://example.com/file.zip
Comprobaciones del sistema
Si algo falla, conviene comprobar el espacio en disco, los procesos en ejecución y los servicios activos.
- df muestra el espacio utilizado y disponible en cada sistema de archivos montado. Añade -h para mostrar los tamaños en un formato más fácil de leer, como GB o MB.
df -h
- du muestra el tamaño de los archivos y directorios. du -sh * permite identificar rápidamente qué directorios ocupan más espacio.
du -sh /var/log/*
- top muestra los procesos en ejecución en tiempo real, ordenados por uso de CPU. Pulsa q para salir. Si prefieres una interfaz más visual, puedes instalar y utilizar htop.
top
- systemctl controla los servicios en los sistemas que utilizan systemd, como la mayoría de las distribuciones modernas de Linux. Sirve para iniciar, detener y reiniciar servicios como NGINX o MySQL, además de comprobar su estado.
systemctl status nginx
Comandos para gestionar claves SSH
Las claves SSH son un par de archivos que permiten iniciar sesión sin contraseña. La clave privada permanece en tu ordenador y la pública se guarda en el servidor. Cuando te conectas, el servidor utiliza la clave pública para comprobar que tu ordenador dispone de la clave privada correspondiente. Este método es más seguro que utilizar contraseñas, ya que una clave SSH no se puede adivinar mediante ataques de fuerza bruta como una contraseña.
Puedes configurar claves SSH en tres pasos.
Genera un par de claves SSH
Utiliza ssh-keygen para crear un par de claves SSH. Ed25519 es una opción moderna, más rápida y segura que las claves RSA antiguas:
ssh-keygen -t ed25519 -C "your_email@example.com"
El comando te pregunta dónde quieres guardar la clave. Pulsa Enter para utilizar la ubicación predeterminada ~/.ssh/id_ed25519. También puedes añadir una frase de contraseña como protección adicional.
Copia la clave pública en el servidor
ssh-copy-id es la forma más sencilla de instalar la clave pública en un servidor remoto.
ssh-copy-id usuario@servidor
Después, puedes configurar SSH sin contraseña e iniciar sesión sin tener que introducir tu contraseña.
Conéctate con una clave privada concreta
Si tienes varias claves, utiliza -i para indicar cuál quieres usar.
ssh -i ~/.ssh/id_ed25519 usuario@servidor
Gestiona las claves con ssh-agent
ssh-agent mantiene las claves descifradas en memoria para que no tengas que escribir la frase de contraseña cada vez que te conectes.
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Cuando compruebes que las claves funcionan correctamente, puedes desactivar el inicio de sesión con contraseña mediante SSH para impedir los intentos de acceso mediante contraseña.
El archivo de la clave privada equivale a una contraseña. No lo compartas, lo envíes por email, lo pegues en un chat ni lo subas a un repositorio público. Si crees que una clave privada ha quedado expuesta, elimina la clave pública correspondiente de todos los servidores donde esté instalada y genera un par nuevo.
Cómo ejecutar comandos remotos mediante SSH
Puedes ejecutar un único comando en un servidor remoto sin abrir una sesión interactiva completa. Solo tienes que añadirlo al final del comando ssh. El servidor lo ejecutará, mostrará el resultado y cerrará la conexión.
ssh usuario@servidor "df -h"
Esto resulta útil para hacer comprobaciones rápidas y crear scripts. Estos son algunos ejemplos habituales:
- Comprobar el espacio en disco: ssh usuario@servidor “df -h”.
- Mostrar los archivos de un directorio: ssh usuario@servidor “ls -la /var/www”.
- Comprobar el estado de un servicio: ssh usuario@servidor “systemctl status nginx”.
- Reiniciar un servicio: ssh usuario@servidor “sudo systemctl restart nginx”.
Escribe los comandos más largos entre comillas para que el shell local los envíe como una sola cadena. Por ejemplo, ssh usuario@servidor “ls -la /var/log” ejecuta todo el comando ls -la /var/log en el servidor remoto en lugar de interpretarlo en el ordenador antes de enviarlo.
Si el comando contiene sus propias comillas, utiliza comillas simples en el exterior y dobles en el interior, o escapa las comillas internas con una barra invertida. Tanto ssh usuario@servidor ‘grep “error” /var/log/syslog’ como ssh usuario@servidor “grep “error” /var/log/syslog” funcionan de la misma forma.
Comandos para transferir archivos mediante SSH
SSH no solo sirve para ejecutar comandos. También permite transferir archivos de forma segura entre tu ordenador y el servidor. Hay tres herramientas principales, cada una indicada para un tipo de tarea.
Copia archivos con SCP
SCP (secure copy) es una de las formas más sencillas de transferir un archivo o directorio mediante SSH. El comando SCP sigue un patrón parecido al de cp, pero uno de los extremos de la transferencia se encuentra en un servidor remoto.
Para copiar un archivo local al servidor:
scp report.pdf usuario@servidor:/home/usuario/
Para copiar un archivo del servidor a tu ordenador:
scp user@host:/var/log/nginx/access.log ./
Para copiar un directorio completo con -r:
scp -r ./website user@host:/var/www/
Las versiones modernas de OpenSSH utilizan SFTP internamente al ejecutar scp, ya que OpenSSH 9.0 dejó de utilizar el protocolo SCP original de forma predeterminada. El comando y su sintaxis siguen funcionando de la misma forma.
Transfiere archivos con SFTP
SFTP (SSH File Transfer Protocol) abre una sesión interactiva en la que puedes consultar, subir, descargar y cambiar el nombre de los archivos mediante comandos como ls, get, put y cd. Resulta útil cuando quieres explorar el sistema de archivos remoto antes de decidir qué transferir.
Puedes usar SFTP para transferir archivos de forma segura tanto desde la línea de comandos como con clientes gráficos como FileZilla.
sftp usuario@servidor
Una vez conectado, prueba estos comandos:
ls
cd /var/www
get index.html
put new-page.html
exit
Sincroniza directorios con rsync
Para transferencias grandes, backups periódicos o para mantener dos directorios sincronizados, el comando rsync es una buena opción. Solo copia los archivos que han cambiado, lo que reduce el tiempo de transferencia y el uso de ancho de banda.
rsync -avz ./carpeta-local/ usuario@servidor:/var/www/web/
La opción -a conserva los permisos y las marcas de tiempo, -v muestra qué se está transfiriendo y -z comprime los datos durante la transferencia.
La barra al final del directorio de origen también es importante. Si la incluyes, rsync copia su contenido. Si no, copia el propio directorio dentro del destino.
Atajos con el archivo de configuración de SSH
El archivo de configuración de SSH permite guardar datos de cada servidor, como el nombre de host, el nombre de usuario, el puerto y la ruta de la clave SSH. Así, puedes conectarte mediante un alias corto en lugar de escribir el comando completo cada vez.
El archivo se encuentra en ~/.ssh/config en tu ordenador. Si no existe, créalo. Este es un ejemplo:
Host myvps
HostName 203.0.113.10
User admin
Port 2222
IdentityFile ~/.ssh/id_ed25519
Después de guardarlo, puedes conectarte escribiendo:
ssh myvps
Puedes añadir tantos bloques Host como necesites, uno por servidor. Esta configuración también resulta útil si utilizas servidores de salto o claves diferentes para cada servidor.
Comandos para crear túneles SSH y redirigir puertos
Los túneles SSH redirigen el tráfico de red a través de una conexión SSH cifrada. Son útiles para acceder a servicios que no están expuestos a internet, como una base de datos que solo acepta conexiones desde la interfaz local del servidor.
Hay tres tipos principales de túneles:
- Reenvío local de puertos: envía el tráfico desde un puerto de tu ordenador a un puerto del entorno remoto. Sirve para acceder a un servicio remoto como si se ejecutara en tu ordenador.
ssh -L 3306:localhost:3306 usuario@servidor
- Reenvío remoto de puertos: hace lo contrario y envía el tráfico desde un puerto del servidor remoto a uno de tu ordenador.
ssh -R 8080:localhost:80 usuario@servidor
- Reenvío dinámico de puertos: convierte SSH en un proxy SOCKS que puedes configurar en tu navegador para dirigir el tráfico a través del servidor.
ssh -D 1080 usuario@servidor
Antes de abrir un túnel, comprueba qué servicio vas a exponer y quién podrá acceder a él. Puedes redirigir una base de datos o un panel de administración para uso propio, pero dejar un túnel abierto o apuntar al puerto equivocado puede exponer servicios sensibles en una red en la que no deberían estar disponibles.
Cómo solucionar errores de conexión SSH
La mayoría de los errores de SSH pertenecen a unas pocas categorías. La opción de modo detallado -v es una de las mejores herramientas para identificar la causa. Ejecuta ssh -v usuario@servidor para comprobar en qué punto falla la conexión.
| Error | Posible causa | Qué probar |
|---|---|---|
| Conexión SSH rechazada | El servicio SSH no está en ejecución o el firewall bloquea el puerto. | Comprueba el estado del servidor y confirma que el puerto esté abierto. |
| Se ha agotado el tiempo de espera de la conexión | La dirección IP o el nombre de host son incorrectos, o no se puede acceder al servidor. | Comprueba que utilizas la dirección IP o el nombre de host correctos y que puedes acceder al servidor. |
| Permiso denegado (clave pública) | La clave no está autorizada en el servidor o el archivo de la clave tiene permisos incorrectos. | Ejecuta chmod 600 ~/.ssh/id_ed25519 en tu ordenador. En el servidor, comprueba que la clave pública esté en ~/.ssh/authorized_keys, que ~/.ssh tenga permisos 700 y que authorized_keys tenga permisos 600. |
| Permiso denegado (contraseña) | El nombre de usuario o la contraseña son incorrectos, o el inicio de sesión con contraseña está desactivado. | Comprueba las credenciales y el ajuste PasswordAuthentication de /etc/ssh/sshd_config. |
| Puerto 22: conexión rechazada | Estás utilizando el puerto predeterminado, pero el servidor usa uno personalizado. | Añade -p con el puerto correcto. |
| Error en la verificación de la clave del servidor | La clave del servidor ha cambiado desde la última conexión. | Si sabes que el cambio es legítimo, por ejemplo, porque se ha reconstruido el servidor, elimina la entrada anterior con ssh-keygen -R host. Si no esperabas el cambio, investiga la causa antes de conectarte. |
Un cambio repentino en la clave del servidor puede deberse a que el servidor se haya reconstruido, pero también puede indicar que alguien está interceptando la conexión. No aceptes una nueva clave sin comprobarla si ya te habías conectado antes a ese servidor. Confirma primero el cambio con tu proveedor de hosting.
Próximos pasos para usar SSH en tu servidor
Ya conoces los principales comandos SSH y los conceptos básicos de Linux necesarios para gestionar un servidor remoto. Ahora puedes iniciar sesión y practicar: cambia de directorio con cd, muestra los archivos con ls y consulta los registros en tiempo real con tail -f hasta familiarizarte con estos comandos.
Después, adopta tres hábitos: utiliza claves SSH en lugar de contraseñas, crea backups locales de los archivos de configuración importantes con SCP o rsync antes de hacer cambios en el servidor y ejecuta ssh -v siempre que falle una conexión.
También puedes explorar estas opciones:
- Ejecuta tareas largas sin perderlas si se interrumpe la sesión SSH con Linux Screen o tmux.
- Guarda los datos habituales de cada servidor en ~/.ssh/config para conectarte mediante alias cortos.
- Automatiza comprobaciones rutinarias con comandos remotos breves, como comprobar a diario el espacio en disco.
Cuanto más utilices SSH, más natural te resultará trabajar con él. Con la práctica, podrás centrarte en gestionar el servidor sin pensar en el protocolo que hay detrás.
Todo el contenido tutorial en este sitio web está sujeto a los estándares y valores editoriales más rigurosos de Hostinger.
Comentarios
0 responses