Hacer ssh realmente silencioso


15

Estoy a medio camino de escribir un guión nagios y he llegado a una molestia con SSH.

Según la página del manual:

-q       Quiet mode.  Causes all warning and diagnostic messages to be
         suppressed.

Sin embargo, si habilito el indicador silencioso y luego paso un puerto no válido, sigo recibiendo un error:

$ ssh user@localhost -q -p test
Bad port 'test'

Este es un problema, porque eso hará que ese mensaje sea la primera línea y eso es lo que agarra Nagios. Necesito mostrar algo como "Advertencia | Error de SSH" después de seleccionar un != 0código de salida de ssh, pero la primera línea en la que puedo mostrar será la línea 2.

¿Cómo puedo hacer que SSH sea realmente silencioso?

Nota: no estaba seguro de si publicar esta pregunta en serverfault, en superusuario o en stackoverflow. Fui con serverfault ya que la base de usuarios probablemente tenga más experiencia con cli SSH y soluciones de scripts de cli.


2
No es que realmente ayude, pero parece que el manual se ha actualizado para reflejar esto. A partir de OpenSSH 5.8 (y quizás antes), establece que "la mayoría de las advertencias y diagnósticos" se suprimirán, en lugar de " todas las advertencias y diagnósticos".
James Sneeringer

je je molesto! buen lugar sin embargo.
SimonJGreen

¿Por qué no simplemente evitar intentar conectarse a un puerto no válido?
Zoredache

1
@ Zoredache Este es un error en la captura / manejo. Evitar un error tipográfico no resuelve el problema de cómo manejarlo con gracia;)
SimonJGreen

Respuestas:


25
ssh user@localhost -q -p test 2> /dev/null 

redirigirá stderra / dev / null.


2
Ahora me siento como una teta completa. ¡Me enseñará a codificar a altas horas de la noche!
SimonJGreen

-2

O, el método más fácil de almacenar LogLevel QUIETen el archivo de configuración:

$ cat ~/.ssh/config 
Host *
  IdentityFile ~/.ssh/id_rsa
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  LogLevel QUIET
  ...

Termina obteniendo el mismo resultado que el anterior con mucha menos escritura.

Salud


1
Voté a la respuesta porque no resuelve el problema que se preguntó aquí:% ssh -p test -oLogLevel = QUIET localhost Bad port 'test'
cstamas
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.