20 comandos SSH comunes que debería utilizar hoy en día
SSH (Secure Shell) es un protocolo muy utilizado para acceder a servidores remotos de forma segura. Permite gestionar e interactuar con sistemas remotos a través de una conexión cifrada. Dominar los comandos básicos de SSH puede mejorar significativamente su productividad y facilitar la gestión de servidores remotos. A continuación se muestran 20 comandos SSH comunes que todo administrador de sistemas, desarrollador o cualquiera que trabaje con servidores debería conocer.
1. Conexión SSH básica
Este comando se utiliza para conectarse a un servidor remoto a través de SSH.
- Sustituya username por su nombre de usuario y remote_host por la dirección IP o el nombre de dominio del servidor.
Ejemplo:
2. Especifique un puerto
Por defecto, SSH utiliza el puerto 22. Si su servidor utiliza un puerto diferente, utilice el indicador -p para especificarlo.
Ejemplo:
3. Copiar archivos de local a remoto usando scp
Utilice scp (copia segura) para transferir archivos desde su máquina local a un servidor remoto.
Ejemplo:
4. Copiar archivos de remoto a local usando scp
Para descargar archivos de un servidor remoto a su máquina local:
Ejemplo:
5. Copiar directorios recursivamente usando scp
Para copiar directorios completos (incluidos los subdirectorios), utilice la opción -r con scp.
Ejemplo:
6. Ejecutar comandos en un servidor remoto
Puede ejecutar un comando en un servidor remoto sin abrir una sesión SSH interactiva.
Ejemplo:
7. Utilizar autenticación de clave SSH
Para evitar introducir contraseñas cada vez, puedes utilizar la autenticación de clave SSH.
- Genere un par de claves SSH:ssh-keygen -t rsa
- Copie la clave pública en el servidor remoto:ssh-copy-id nombre_usuario@host_remoto
Después de copiar la clave, puede iniciar sesión sin contraseña.
8. Comprobar los registros de conexión SSH
Para ver los intentos de inicio de sesión SSH y los registros de conexión en el servidor:
Este comando es útil para controlar los intentos de inicio de sesión no autorizados.
9. Túnel SSH (Reenvío de puertos)
El túnel SSH le permite reenviar tráfico desde un puerto local a un servidor remoto de forma segura.
Reenvío de puertos locales:
Ejemplo: Reenviar el puerto local 8080 al puerto 3306 en un servidor remoto.
Reenvío remoto de puertos:
10. SSH en el servidor remoto con un archivo de identidad diferente
Si tiene varias claves SSH, puede especificar una clave concreta con el indicador -i.
Ejemplo:
11. Copiar archivos usando rsync sobre SSH
rsync es una herramienta más avanzada que scp para copiar archivos y directorios.
Ejemplo:
La opción -a conserva los permisos de los archivos, -v es para una salida detallada y -z activa la compresión.
12. Comprobar el estado de la conexión SSH
Para comprobar si la conexión SSH a un servidor remoto sigue activa:
Este comando comprueba el estado de la conexión sin interrumpirla.
13. Lista de conexiones SSH activas
Para listar las conexiones SSH activas en un servidor, puede utilizar:
O
Estos comandos muestran qué usuarios han iniciado sesión en el servidor.
14. Terminar una sesión SSH
Para salir de una sesión SSH, simplemente escriba:
O pulse Ctrl D.
15. Configurar un proxy SOCKS con SSH
SSH puede actuar como un proxy SOCKS, permitiéndole navegar por Internet de forma segura a través del túnel SSH.
Ejemplo:
A continuación, establezca la configuración del proxy de su navegador en localhost:8080 para utilizar el proxy SOCKS.
16. Reenvío de agentes SSH
Si desea utilizar sus claves SSH locales en un servidor remoto:
- Inicie el agente SSH en su máquina local:eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa - Conéctese con el reenvío del agente:ssh -A nombre_usuario@host_remoto
Esto le permite SSH desde el servidor remoto a otro servidor utilizando su clave local.
17. Archivo de configuración SSH
Para simplificar las conexiones SSH, puede crear un archivo de configuración:
- Edite o cree ~/.ssh/config:nano ~/.ssh/config
- Añade una entrada:Host myserver
HostName ejemplo.com
Usuario user
Puerto 2222
Archivo de identidad ~/.ssh/id_rsa - Conectar con:ssh myserver
18. Comprobar versión de SSH
Para ver qué versión de SSH está instalada en su sistema:
Ejemplo de salida:
19. Establecer el intervalo KeepAlive para evitar que se agote el tiempo de espera
Para mantener viva la conexión SSH y evitar que se agote el tiempo de espera, añada lo siguiente en ~/.ssh/config:
ServerAliveInterval 60
Esto envía una señal keep-alive cada 60 segundos.
20. Comprobar el espacio de disco disponible en el servidor remoto
Puede usar df sobre SSH para comprobar el espacio en disco en un servidor remoto:
Ejemplo:
Este comando muestra el espacio disponible en disco en un formato legible por humanos (-h).
Resumen
Estos 20 comandos SSH cubren una amplia gama de funciones, desde conexiones básicas y transferencias de archivos hasta tareas avanzadas como la creación de túneles y el uso de claves SSH. Al dominar estos comandos, usted puede administrar servidores remotos de manera más eficiente y segura. Ya sea que esté desplegando aplicaciones, transfiriendo archivos o solucionando problemas del servidor, estos comandos SSH son herramientas esenciales en la caja de herramientas de un administrador de sistemas.