Las comprobaciones SSH se realizan como una monitorización sin agente. No se necesita el agente Zabbix para las comprobaciones SSH.
Para realizar comprobaciones SSH, el servidor Zabbix debe estar inicialmente configurado con soporte SSH2 (libssh o libssh2). Consulte también: Requisitos.
A partir de RHEL 8, solo se admite libssh. Para otras distribuciones, se recomienda libssh sobre libssh2.
Las comprobaciones SSH proporcionan dos métodos de autenticación: un par usuario/contraseña y basado en archivo de clave.
Si no tiene intención de usar claves, no se requiere configuración adicional, además de vincular libssh o libssh2 a Zabbix, si está compilando desde el código fuente.
Para utilizar la autenticación basada en clave para métricas SSH, se requieren ciertos cambios en la configuración del servidor.
Abra el archivo de configuración del servidor Zabbix (zabbix_server.conf) como root y busque la siguiente línea:
Descoméntela y establezca la ruta completa a la carpeta donde se ubicarán las claves públicas y privadas:
Guarde el archivo y reinicie el servidor Zabbix posteriormente.
La ruta /home/zabbix aquí es el directorio home para la cuenta de usuario zabbix, y .ssh es un directorio donde por defecto se generarán las claves públicas y privadas mediante el comando ssh-keygen dentro del directorio home.
Normalmente, los paquetes de instalación del servidor Zabbix de diferentes distribuciones de SO crean la cuenta de usuario zabbix con un directorio home en otro lugar, por ejemplo, /var/lib/zabbix (como para cuentas de sistema).
Antes de generar las claves, puede reasignar el directorio home a /home/zabbix, para que corresponda con el parámetro de configuración SSHKeyLocation del servidor Zabbix mencionado anteriormente.
Los siguientes pasos pueden omitirse si la cuenta zabbix se ha añadido manualmente según la sección de instalación. En tal caso, el directorio home para la cuenta zabbix probablemente ya sea /home/zabbix.
Para cambiar el directorio home de la cuenta de usuario zabbix, deben detenerse todos los procesos en ejecución que la estén utilizando:
Para cambiar la ubicación del directorio home intentando moverlo (si existe), debe ejecutarse el siguiente comando:
También es posible que no existiera un directorio home en la ubicación anterior, por lo que debe crearse en la nueva ubicación. Un intento seguro de hacerlo es:
Para asegurarse de que todo es seguro, pueden ejecutarse comandos adicionales para establecer los permisos del directorio home:
Ahora pueden iniciarse de nuevo los procesos detenidos previamente:
Ahora, los pasos para generar las claves públicas y privadas pueden realizarse con los siguientes comandos (para mayor legibilidad, los prompts de los comandos están comentados):
sudo -u zabbix ssh-keygen -t rsa
# Generating public/private rsa key pair.
# Enter file in which to save the key (/home/zabbix/.ssh/id_rsa):
/home/zabbix/.ssh/id_rsa
# Enter passphrase (empty for no passphrase):
<Dejar vacío>
# Enter same passphrase again:
<Dejar vacío>
# Your identification has been saved in /home/zabbix/.ssh/id_rsa.
# Your public key has been saved in /home/zabbix/.ssh/id_rsa.pub.
# The key fingerprint is:
# 90:af:e4:c7:e3:f0:2e:5a:8d:ab:48:a2:0c:92:30:b9 zabbix@it0
# The key's randomart image is:
# +--[ RSA 2048]----+
# | |
# | . |
# | o |
# | . o |
# |+ . S |
# |.+ o = |
# |E . * = |
# |=o . ..* . |
# |... oo.o+ |
# +-----------------+Las claves pública y privada (id_rsa.pub e id_rsa) se han generado por defecto en el directorio /home/zabbix/.ssh, que corresponde al parámetro de configuración SSHKeyLocation del servidor Zabbix.
Pueden ser compatibles tipos de clave distintos a "rsa" mediante la herramienta ssh-keygen y los servidores SSH, pero puede que no sean compatibles con libssh2 utilizada por Zabbix.
Este paso debe realizarse solo una vez por cada equipo que será monitorizado mediante comprobaciones SSH.
Utilizando los siguientes comandos, el archivo de clave pública puede instalarse en un equipo remoto 10.10.10.10, de modo que las comprobaciones SSH puedan realizarse con una cuenta root (para una mejor legibilidad, los prompts de los comandos están comentados):
sudo -u zabbix ssh-copy-id [email protected]
# The authenticity of host '10.10.10.10 (10.10.10.10)' can't be established.
# RSA key fingerprint is 38:ba:f2:a4:b5:d9:8f:52:00:09:f7:1f:75:cc:0b:46.
# Are you sure you want to continue connecting (yes/no)?
yes
# Warning: Permanently added '10.10.10.10' (RSA) to the list of known hosts.
# [email protected]'s password:
<Introduzca la contraseña de root>
# Now try logging into the machine, with "ssh '[email protected]'",
# and check to make sure that only the key(s) you wanted were added.Ahora es posible comprobar el inicio de sesión SSH utilizando la clave privada por defecto (/home/zabbix/.ssh/id_rsa) para la cuenta de usuario zabbix:
sudo -u zabbix ssh [email protected]Si el inicio de sesión es exitoso, entonces la parte de configuración en la shell está finalizada y la sesión SSH remota puede cerrarse.
El/los comando(s) reales a ejecutar deben colocarse en el campo Script ejecutado en la configuración de la métrica. Se pueden ejecutar varios comandos uno tras otro colocándolos en una nueva línea. En este caso, los valores devueltos también se formatearán en varias líneas.

Todos los campos de entrada obligatorios están marcados con un asterisco rojo.
Los campos que requieren información específica para métricas SSH son:
| Parámetro | Descripción | Comentarios |
|---|---|---|
| Tipo | Seleccione Agente SSH aquí. | |
| Clave | Clave de métrica única (por equipo) en el formato ssh.run[descripción corta única,<ip>,<puerto>,<codificación>,<opciones ssh>,<subsystem>] | descripción corta única es obligatoria y debe ser única para cada métrica SSH por equipo. El puerto por defecto es 22, no el puerto especificado en la interfaz a la que se asigna esta métrica. opciones ssh permite pasar opciones SSH adicionales en el formato clave1=valor1;clave2=valor2,valor3. Se pueden pasar varios valores para una clave separados por coma (en este caso, el parámetro debe estar entre comillas); se pueden pasar varias claves de opción separadas por punto y coma. Se admiten las siguientes claves de opción: KexAlgorithms, HostkeyAlgorithms, Ciphers, MACs, PubkeyAcceptedKeyTypes. El soporte de clave y valor de opción depende de la biblioteca SSH (por ejemplo, PubkeyAcceptedKeyTypes solo se admite con libssh); si una opción no es compatible, se devolverá un error y la métrica quedará como no soportada.Tenga en cuenta que el signo "+" para agregar configuraciones de cifrado y "!" para deshabilitar configuraciones de cifrado específicas (como en GnuTLS y OpenSSL) no son compatibles. Ejemplos: => ssh.run[KexAlgorithms,127.0.0.1,,,Ciphers=aes128-ctr]=> ssh.run[KexAlgorithms,,,,"KexAlgorithms=diffie-hellman-group1-sha1;HostkeyAlgorithms=ssh-rsa,ssh-dss,ecdh-sha2-nistp256"]=> ssh.run[PubkeyAcceptedKeyTypes,127.0.0.1,,,PubkeyAcceptedKeyTypes=ssh-rsa]subsystem permite pasar un subsistema SSH, limitando la conexión SSH a operaciones específicas permitidas por el subsistema (por ejemplo, transferencias de archivos usando SFTP o gestión de dispositivos de red usando NETCONF). Tenga en cuenta que el uso de un subsistema también puede requerir el uso de una sintaxis de script específica en el parámetro Script ejecutado. Ejemplos: => ssh.run[SFTPBackup,192.0.2.18,,,,sftp]=> ssh.run[Cisco1234,192.0.2.18,,,,netconf] |
| Método de autenticación | Uno de "Contraseña" o "Clave pública". | |
| Nombre de usuario | Nombre de usuario (hasta 255 caracteres) para autenticarse en el equipo remoto. Obligatorio. | |
| Archivo de clave pública | Nombre del archivo de clave pública si el Método de autenticación es "Clave pública". Obligatorio. | Ejemplo: id_rsa.pub - nombre de archivo de clave pública por defecto generado por el comando ssh-keygen. |
| Archivo de clave privada | Nombre del archivo de clave privada si el Método de autenticación es "Clave pública". Obligatorio. | Ejemplo: id_rsa - nombre de archivo de clave privada por defecto. |
| Contraseña o Frase de clave |
Contraseña (hasta 255 caracteres) para autenticarse o Frase de clave si se utilizó para la clave privada. |
Deje el campo Frase de clave vacío si no se utilizó frase de clave. Consulte también problemas conocidos sobre el uso de frases de clave. |
| Script ejecutado | Comando(s) de shell ejecutado(s) usando una sesión remota SSH. | El valor de retorno de los comandos de shell ejecutados está limitado a 16MB (incluyendo los espacios en blanco finales que se truncan); también se aplican los límites de la base de datos. Tenga en cuenta que la biblioteca libssh2 puede truncar los scripts ejecutables a ~32kB. Ejemplos: date +%ssystemctl status mysql-serverps auxww \| grep httpd \| wc -lEjemplo (para subsistema NETCONF): <rpc><get-software-information/></rpc>]]>]]><rpc><close-session/></rpc>]]>]]> |