Silence ssh-add

12

J'ai un cronjob qui exécute certaines tâches, et au début du script, il s'exécute est un appel ssh-add (il ne s'exécute pas en tant qu'utilisateur avec la clé appropriée, il doit donc être ajouté, et à l'avenir, il pourrait bien utiliser un déployer la clé définie dans le contrôle de version). Cela ressemble à ceci:

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

Je veux le faire taire, car ce cronjob fonctionne régulièrement, et j'ai beaucoup de courriels dans ma boîte de réception qui me sont complètement inutiles indiquant que oui, la clé a été ajoutée. Je veux seulement des e-mails lorsque les choses tournent mal, comme une connexion à distance git pull, etc., ce qui arrive.

Donc TLDR, je continue de voir ceci:

Identité ajoutée: /home/tomjn/.ssh/id_rsa (/home/tomjn/.ssh/id_rsa)

Comment puis-je la fermer?

J'ai essayé des choses comme:

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

Mais en vain. La page de manuel n'indique pas qu'il y a un --quietparamètre, puis-je faire autre chose pour arrêter la sortie?

Tom J Nowell
la source

Réponses:

18

La sortie de la ssh-addcommande est sur STDERR. Vous devez rediriger STDERR vers / dev / null pour supprimer la sortie:

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

ou supprimer toute sortie en terminant la commande avec >/dev/null 2>&1

mtak
la source
2
Un indicateur silencieux serait plus fin car il permettrait de réduire le fonctionnement normal tout en permettant de repérer des erreurs (comme une clé non trouvée ou non lisible). Un rapide coup d'œil sur github.com/openssh/openssh-portable/blob/master/ssh-add.c confirme qu'il n'y a pas d'option dans le code source. Les autres options consistent à filtrer spécifiquement le message "ajouté", mais dans bash, cela interfère généralement avec la gestion des erreurs (si vous souhaitez set -eueffectuer des vérifications d'intégrité au moment de l'exécution). Aucune indication que tout cela est important ici, donc juste rediriger stderr devrait suffire.
Stéphane Gourichon
4
Il y a maintenant une option pour cela sur la page de manuel Aussi, le code que vous avez lié a maintenant une mention de ce drapeau dans la sortie de l'aide Le drapeau a été ajouté dans ce commit Cependant, j'ai OpenSSH_7.6p1sur mon mac de homebrew (le plus récent disponible) et cet indicateur ne semble pas fonctionner - l' -qoption est disponible dans l'aide, mais elle ne modifie pas la sortie d'ajout de clé.
austinheiman
1
-qne fonctionne pas non plus sur Kubuntu 18.04.
systemovich