Silence ssh-add


12

Ho un cronjob che esegue alcune attività e all'inizio dello script viene eseguita una chiamata ssh-add (non viene eseguita come utente con la chiave appropriata, quindi deve essere aggiunta e in futuro potrebbe benissimo utilizzare un chiave di distribuzione definita nel controllo versione). Questo assomiglia a questo:

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

Voglio metterlo a tacere, poiché questo cronjob funziona regolarmente e nella mia casella di posta ho molte e-mail che sono completamente inutili per me affermando che sì, la chiave è stata aggiunta. Voglio e-mail solo quando le cose vanno male, come una connessione remota git pull, ecc., Che succede.

Quindi TLDR, continuo a vedere questo:

Identità aggiunta: /home/tomjn/.ssh/id_rsa (/home/tomjn/.ssh/id_rsa)

Come lo zitto?

Ho provato cose come:

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

Ma inutilmente. La pagina man non indica che c'è un --quietparametro, c'è qualcos'altro che posso fare per mettere a tacere l'output?

Risposte:


18

L'output del ssh-addcomando è su STDERR. È necessario reindirizzare STDERR su / dev / null per sopprimere l'output:

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

o in alternativa sopprimere tutto l'output terminando il comando con >/dev/null 2>&1


2
Una bandiera silenziosa sarebbe più fine poiché consentirebbe di mettere a tacere il normale funzionamento consentendo di individuare errori (come chiave non trovata o non leggibile). Una rapida occhiata a github.com/openssh/openssh-portable/blob/master/ssh-add.c conferma che non esiste alcuna opzione nel codice sorgente. Altre opzioni sono di filtrare in modo specifico il messaggio "aggiunto", ma in bash questo in genere interferisce con la gestione degli errori (se ti interessa set -eualcuni controlli di integrità in fase di esecuzione). Nessun suggerimento che tutto ciò sia importante qui, quindi basta reindirizzare stderr dovrebbe essere sufficiente.
Stéphane Gourichon,

4
Ora c'è un'opzione per questo nella pagina man Inoltre, il codice che hai collegato ora ha una menzione di questo flag nell'output della guida Il flag è stato aggiunto in questo commit Tuttavia, ho OpenSSH_7.6p1sul mio mac da homebrew (disponibile più recente) e questo flag non sembra funzionare - l' -qopzione è disponibile nella guida, ma non cambia l'output di aggiunta chiave.
austinheiman,

1
-qnon funziona neanche su Kubuntu 18.04.
systemovich
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.