Comandos SSH que debes conocer para una gestión remota eficiente

Secure Shell (SSH) es una herramienta esencial para acceder y administrar servidores remotos de forma segura. Ya seas administrador de sistemas, desarrollador o entusiasta de la tecnología, dominar los comandos SSH puede mejorar significativamente tu flujo de trabajo. Este artículo cubre los comandos SSH que todos los usuarios deben conocer.

¿Qué es SSH?

SSH, o Secure Shell, es un protocolo que permite a los usuarios conectarse de forma segura a un ordenador remoto a través de una red no segura. Proporciona comunicación cifrada y diversos métodos de autenticación, lo que lo convierte en una herramienta fundamental para la gestión remota.

Comandos SSH esenciales

1. Conectarse a un servidor remoto

La sintaxis básica para conectarse a un servidor remoto es:

ssh nombre de usuario@nombre de host

Reemplace username con su cuenta de usuario remota y hostname con la dirección del servidor (IP o dominio).

2. Especificación de un puerto

Si su servidor SSH escucha en un puerto distinto del 22 predeterminado, puede especificarlo utilizando la opción -p:

ssh -p número_de_puerto nombre_usuario@nombre_de_host

3. Copiar archivos con SCP

El protocolo de copia segura (SCP) se utiliza para transferir archivos entre hosts locales y remotos de forma segura. La sintaxis básica para copiar un archivo desde una máquina local a un servidor remoto es la siguiente:

scp archivo_local nombre_usuario@nombre_host:/directorio/remoto/

Para copiar un archivo desde un servidor remoto a su máquina local:

scp nombre_usuario@nombre_host:/remoto/archivo directorio_local/

4. Ejecución de comandos remotos

Puede ejecutar comandos en un servidor remoto sin iniciar sesión de forma interactiva:

ssh nombre de usuario@nombre de host 'command'

Por ejemplo, para comprobar el uso del disco en un servidor remoto:

ssh nombre de usuario@nombre de host 'df -h'

5. Uso de claves SSH para autenticación

Las claves SSH proporcionan una forma más segura de iniciar sesión en un servidor remoto que el uso de contraseñas. Genere un par de claves con:

generador de claves ssh

Luego, copie su clave pública al servidor remoto:

ssh-copy-id nombre de usuario@nombre de host

6. Tunelización con SSH

La tunelización SSH le permite crear una conexión segura entre su equipo local y un servidor remoto, que puede utilizarse para acceder a servicios en la red remota. Por ejemplo, para redireccionar un puerto local a un puerto remoto:

ssh -L puerto_local:host_remoto:puerto_remoto nombre_usuario@nombre_host

Este comando reenvía local_port en su máquina a remote_port en remote_host a través de la conexión SSH.

7. Archivo de configuración SSH

El archivo de configuración SSH le permite guardar las opciones de conexión SSH que utiliza con frecuencia. Normalmente se encuentra en ~/.ssh/config. Una entrada de configuración de ejemplo podría verse así:

Host alias
    HostName hostname
    User username
    Port port_number
    IdentityFile ~/.ssh/id_rsa

Después de la configuración, puedes conectarte usando el alias:

alias ssh

8. Sesiones SSH en segundo plano

Puede ejecutar sesiones SSH en segundo plano utilizando la opción -f, que es útil para ejecutar procesos en segundo plano:

ssh -f nombre de usuario@nombre de host 'command'

Para ejecutar un comando en segundo plano:

ssh -f nombre de usuario@nombre de host 'command &'

9. Comprobación de la versión de SSH

Para comprobar la versión de SSH instalada en su sistema:

ssh-V

10. Cerrar una sesión SSH

Para cerrar sesión en una sesión SSH, simplemente escriba:

salida

Conclusión

Conocer estos comandos SSH esenciales puede mejorar enormemente su capacidad para administrar servidores remotos de manera eficiente y segura. Ya sea que esté transfiriendo archivos, ejecutando comandos o configurando túneles seguros, SSH es una herramienta poderosa que todo profesional de la tecnología debería dominar.