Seguridad

4 trucos de SSH que todo administrador de sistemas debe conocer

Secure Shell (SSH) es una de las herramientas de Linux más omnipresentes. Proporciona conexiones seguras entre estaciones de trabajo, servidores, conmutadores administrados, enrutadores y cualquier cantidad de otros dispositivos. Linux y macOS incluyen SSH y son fáciles de agregar a Windows.

Este artículo proporciona una revisión rápida Uso estándar de SSHEl enfoque principal es brindar orientación sobre la ejecución de comandos de una sola vez a través de una conexión SSH y cómo tunelizar otras aplicaciones, he agregado una sección adicional sobre el uso scp Copie archivos de forma segura.

Configuración de requisitos previos

Hay muchos artículos sobre la configuración de SSH, por lo que este artículo trata sobre el uso de SSH en lugar de configurarlo. Hice algunas suposiciones sobre su configuración:

  • El servicio SSH está instalado y ejecutándose en el servidor de destino.
  • El cliente SSH está instalado en la computadora local.
  • Esta Configuración del cortafuegos Permitir SSH.
  • Está utilizando el puerto SSH estándar 22/tcp.
  • En estos ejercicios, la autenticación basada en claves no está configurada, por lo que SSH le solicita una contraseña.

Para que conste, se recomienda encarecidamente la autenticación basada en claves (de hecho, casi hipotética en este punto). Los intentos de conexión de autenticación basada en claves son más rápidos, más fáciles de automatizar y se consideran más seguros. Lea SSH sin contraseña usando pares de claves públicas y privadas para obtener orientación sobre esta configuración crítica, u Ocho formas de proteger el acceso SSH en su sistema para obtener consejos generales.

Conéctese a través de SSH normal

Comenzaré con lo que podría considerarse una conexión SSH estándar. Este comando inicia SSH y especifica la cuenta de usuario con la que el servidor remoto debe autenticarse y la identidad del servidor de destino (nombre de host o dirección IP):

$ ssh [email protected]

Un intento de conexión desencadena un desafío de contraseña. Esta es la contraseña para la cuenta de usuario especificada en el sistema remoto.

Una vez autenticado, el sistema remoto muestra un símbolo del sistema y brinda la capacidad de ejecutar comandos o acceder a recursos con cualquier permiso que tenga el usuario que se conecta. En algunos sistemas, la configuración de seguridad evita que el usuario raíz se conecte a través de SSH, por lo que es posible que se requieran privilegios elevados en este momento.

Se ha establecido una sesión interactiva y ahora puede realizar tareas administrativas.

[Learn how to install applications on Linux by downloading this eBook. ]

Ejecutar comandos a través de SSH

¿Qué sucede si lo único que necesita hacer a través de la conexión SSH es ejecutar un comando rápido? Probablemente no desee conectarse y autenticarse, ejecutar comandos y desconectarse por separado.

Recuerde que, a menos que haya configurado la autenticación basada en claves, se le pedirá una contraseña en estos ejemplos (que probablemente debería hacerlo, pero eso está más allá del alcance de este artículo).

SSH permite a los usuarios agregar los comandos deseados directamente a los intentos de conexión. El comando se ejecuta y la conexión se cierra.

La sintaxis básica es ssh [email protected] "command".

Por ejemplo, puede verificar el estado de instalación de un paquete:

 $ ssh [email protected] "rpm -qa | grep nano"

Tal vez necesite verificar los archivos de registro en el servidor remoto en busca de mensajes «fallidos». Puedes intentar algo como esto:

$ ssh [email protected] "cat /var/log/secure" | grep -i fail

O puede que necesite extraer archivos de un sistema remoto. Además, tienes que comprimir el archivo:

$ ssh [email protected] "tar -czf /projects" > projectsbackup.tar.gz

Tenga en cuenta que puede utilizar scp para esta tarea (ver abajo).

[ Download the Bash shell scripting cheat sheet. ]

Si necesita elevar sus privilegios en el otro lado de la conexión SSH, use sudoy luego fuerce el uso de un pseudo-terminal -tusa esto si sudo Se le pedirá que ingrese su contraseña. El comando se ve así:

$ ssh -t [email protected] "sudo yum install nano"

Túnel otras aplicaciones

SSH puede proporcionar otras aplicaciones con conexiones autenticadas y cifradas a dispositivos remotos.

Virtual Network Computing (VNC) es una forma útil de conectarse a un escritorio remoto cuando necesita una interfaz gráfica de usuario (GUI) para completar una tarea.

No todos los productos VNC brindan cifrado para la transmisión de datos (sin embargo, generalmente se usan en la etapa de autenticación). Puede hacer un túnel SSH en su conexión VNC para mayor privacidad.

Necesita reenviar puertos para que esto funcione. Escribe lo siguiente:

$ ssh -L 5901:localhost:5901 -N -f -l [email protected]

Inicie un cliente VNC y conéctese a localhost:5901ahora reenviando al servidor remoto.

Aquí hay una descripción de las opciones en el comando anterior:

  • -L: reenvía el puerto al dispositivo de destino. En este caso, es una asignación directa de 5901 a 5901 (el número de puerto VNC predeterminado).
  • -N: solo reenvía el puerto sin ejecutar el comando.
  • -f: Coloque SSH en segundo plano (suelte el símbolo del sistema) cuando se establezca la conexión.
  • -l: esta opción especifica el usuario SSH remoto y el servidor de destino.

Asimismo, puede establecer un túnel HTTP sobre SSH a un imagen Usa un comando como este:

$ ssh -L 11000:localhost:80 -N -f -l [email protected]

A continuación, inicie un navegador web y conéctese a http://localhost:11000/images.

usar scp

Si solo desea copiar archivos, no tiene que usar una conexión SSH completa.En su lugar, puede utilizar scp Los comandos son más fáciles de realizar el mismo objetivo.

Copiar file.txt llegar /projects directorio en el sistema remoto server01Tipos de:

$ scp file.txt server01:/projects

Alternativamente, si necesita copiar un archivo desde el sistema remoto al directorio actual en el sistema, escriba:

$ scp server01:/projects/file.txt .

Glen Newell tiene un artículo sobre el uso scp Pedido.

envolver

La mayoría de los administradores de Linux están familiarizados con el establecimiento de conexiones SSH para la administración remota.corremos ssh comando, verificar y luego completar una serie de tareas. Una vez completada la tarea, nos desconectamos.

Este modo es útil si necesita realizar múltiples configuraciones o ejecutar manualmente una serie de comandos. Sin embargo, a veces solo necesita ejecutar un comando o script. SSH permite conexiones rápidas para autenticarse, ejecutar comandos específicos y desconectarse. Finalmente, SSH también puede tunelizar otros protocolos, como VNC o HTTP, para proporcionar un nivel de seguridad más allá del proporcionado por la aplicación de soporte. Explore la increíble flexibilidad de SSH y descubra nuevas formas de utilizar esta antigua herramienta.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Botón volver arriba