Silencio ssh-add

9

Tengo un cronjob que ejecuta algunas tareas, y al comienzo del script se ejecuta una llamada ssh-add (no se ejecuta como el usuario con la clave adecuada, por lo que debe agregarse, y en el futuro bien podría usar un implementar clave definida en el control de versiones). Esto se parece a esto:

ssh-agent bash -c "ssh-add /home/tomjn/.ssh/id_rsa; etc... "

Quiero silenciarlo, ya que este cronjob se ejecuta regularmente, y tengo muchos correos electrónicos en mi bandeja de entrada que son completamente inútiles para mí afirmando que sí, se agregó la clave. Solo quiero correos electrónicos cuando las cosas van mal, como una conexión remota de git pull, etc., lo que sucede.

Entonces TLDR, sigo viendo esto:

Identidad agregada: /home/tomjn/.ssh/id_rsa (/home/tomjn/.ssh/id_rsa)

¿Cómo lo callo?

He intentado cosas como:

ssh-add /home/tomjn/.ssh/id_rsa > /dev/null

Pero fue en vano. La página del manual no indica que hay un --quietparámetro, ¿hay algo más que pueda hacer para silenciar la salida?

Tom J Nowell
fuente

Respuestas:

14

La salida del ssh-addcomando está en STDERR. Debe redirigir STDERR a / dev / null para suprimir la salida:

mtak@frisbee:~$ ssh-add .ssh/id_rsa 2>/dev/null
mtak@frisbee:~$ 

o, alternativamente, suprima toda salida finalizando el comando con >/dev/null 2>&1

mtak
fuente
2
Una bandera silenciosa sería más fina ya que permitiría silenciar el funcionamiento normal al tiempo que permitiría detectar errores (como una clave no encontrada o no legible). Un vistazo rápido a github.com/openssh/openssh-portable/blob/master/ssh-add.c confirma que no hay opción en el código fuente. Otras opciones son filtrar específicamente el mensaje "agregado", pero en bash esto normalmente interfiere con el manejo de errores (si lo desea set -eupara algunas comprobaciones de sanidad en tiempo de ejecución). No hay indicios de que todo esto es importante aquí, por lo que simplemente redirigir stderr debería ser suficiente.
Stéphane Gourichon
3
En la actualidad existe una opción para esto en la página del manual Además, el código se enlazó tiene ahora que una mención de esta bandera en el resultado de la ayuda se añade el indicador en este comprometerse Sin embargo, tengo OpenSSH_7.6p1en mi mac de homebrew (más reciente disponible) y este indicador no parece funcionar: la -qopción está disponible en la ayuda, pero no cambia la salida de agregar clave.
austinheiman
-qtampoco funciona en Kubuntu 18.04.
systemovich