20 comandos SSH comunes que debería utilizar hoy en día ⋆ ALexHost SRL

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills
13.12.2024

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.

ssh nombre_usuario@host_remoto
  • Sustituya username por su nombre de usuario y remote_host por la dirección IP o el nombre de dominio del servidor.

Ejemplo:

ssh user@example.com

2. Especifique un puerto

Por defecto, SSH utiliza el puerto 22. Si su servidor utiliza un puerto diferente, utilice el indicador -p para especificarlo.

ssh -p número_de_puerto nombre_usuario@host_remoto

Ejemplo:

ssh -p 2222 user@example.com

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.

scp archivo_local nombre_usuario@host_remoto:/ruta/a/destino

Ejemplo:

scp miarchivo.txt user@example.com:/home/user/

4. Copiar archivos de remoto a local usando scp

Para descargar archivos de un servidor remoto a su máquina local:

scp nombre_usuario@host_remoto:/ruta/a/archivo_remoto /ruta/a/destino_local

Ejemplo:

scp user@example.com:/home/user/remote_file.txt .

5. Copiar directorios recursivamente usando scp

Para copiar directorios completos (incluidos los subdirectorios), utilice la opción -r con scp.

scp -r /ruta/a/directorio_local nombre_usuario@host_remoto:/ruta/a/destino_remoto

Ejemplo:

scp -r mi_carpeta user@example.com:/home/user/

6. Ejecutar comandos en un servidor remoto

Puede ejecutar un comando en un servidor remoto sin abrir una sesión SSH interactiva.

ssh nombre_usuario@host_remoto ‘comando_a_ejecutar’

Ejemplo:

ssh user@example.com ‘ls -la /home/usuario’

7. Utilizar autenticación de clave SSH

Para evitar introducir contraseñas cada vez, puedes utilizar la autenticación de clave SSH.

  1. Genere un par de claves SSH:
    ssh-keygen -t rsa
  2. 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:

sudo cat /var/log/auth.log | grep ‘sshd’

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:

ssh -L puerto_local:host_remoto:puerto_remoto nombre_usuario@host_remoto

Ejemplo: Reenviar el puerto local 8080 al puerto 3306 en un servidor remoto.

ssh -L 8080:localhost:3306 user@example.com

Reenvío remoto de puertos:

ssh -R puerto_remoto:host_local:puerto_local nombre_usuario@host_remoto

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.

ssh -i /ruta/a/clave_privada nombre_usuario@host_remoto

Ejemplo:

ssh -i ~/.ssh/id_rsa user@example.com

11. Copiar archivos usando rsync sobre SSH

rsync es una herramienta más avanzada que scp para copiar archivos y directorios.

rsync -avz /ruta/a/directorio_local nombre_usuario@host_remoto:/ruta/a/directorio_remoto

Ejemplo:

rsync -avz mi_carpeta/ user@example.com:/home/user/

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:

ssh -O check nombre_usuario@host_remoto

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:

who

O

w

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:

exit

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.

ssh -D puerto_local nombre_usuario@host_remoto

Ejemplo:

ssh -D 8080 user@example.com

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:

  1. Inicie el agente SSH en su máquina local:
    eval $(ssh-agent)
    ssh-add ~/.ssh/id_rsa
  2. 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:

  1. Edite o cree ~/.ssh/config:
    nano ~/.ssh/config
  2. Añade una entrada:
    Host myserver
    HostName ejemplo.com
    Usuario user
    Puerto 2222
    Archivo de identidad ~/.ssh/id_rsa
  3. Conectar con:
    ssh myserver

18. Comprobar versión de SSH

Para ver qué versión de SSH está instalada en su sistema:

ssh -V

Ejemplo de salida:

OpenSSH_8.4p1, OpenSSL 1.1.1k 25 Mar 2021

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:

Host *
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:

ssh nombre_usuario@host_remoto ‘df -h’

Ejemplo:

ssh user@example.com ‘df -h’

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.

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills