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?

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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.