Тиша ssh-add


12

У мене є cronjob, який виконує деякі завдання, і на початку запущеного сценарію є ssh-add call (він не працює як користувач відповідною клавішею, тому йому потрібно додати, і в майбутньому він цілком може використовувати ключ розгортання, визначений у контролі версій). Це виглядає приблизно так:

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

Я хочу замовкнути це, оскільки ця кронічна робота регулярно працює, і у мене в папці "Вхідні" є багато електронних листів, які мені абсолютно не потрібні, заявляючи, що так, ключ було додано. Мені хочеться, щоб повідомлення електронної пошти відбувалося не так, як, наприклад, відключення віддаленого з'єднання за допомогою git і т.д., що і трапляється.

Отже, TLDR, я постійно бачу це:

Ідентифікація додана: /home/tomjn/.ssh/id_rsa (/home/tomjn/.ssh/id_rsa)

Як я можу закрити це?

Я спробував такі речі, як:

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

Але безрезультатно. Сторінка man не вказує, що є --quietпараметр, чи є ще щось, що я можу зробити, щоб заглушити вихід?

Відповіді:


18

Вихід ssh-addкоманди знаходиться на STDERR. Вам потрібно перенаправити STDERR на / dev / null, щоб придушити вихід:

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

або альтернативно придушити весь вихід, закінчуючи команду >/dev/null 2>&1


2
Тихий прапор був би більш дрібнозернистим, оскільки він дозволить заглушити нормальну роботу, дозволяючи помітити помилки (наприклад, ключ не знайдений чи не читабельний). Швидкий погляд на github.com/openssh/openssh-portable/blob/master/ssh-add.c підтверджує, що у вихідному коді немає жодної опції. Інші варіанти - спеціально відфільтрувати "додане" повідомлення, але, в основному, це зазвичай заважає поводженню з помилками (якщо ви потурбуєтесь set -euпро деякі перевірки стану безпеки). Жодного натяку на те, що все це важливо тут, тому просто перенаправлення stderr має бути достатньо.
Стефан Гурішон

4
Зараз на цій сторінці доступний варіант для цього чоловіка. Також у коді, який ви зв'язали, тепер у згадувальному виході є згадка про цей прапор . Прапор додано в цій комісії. Однак, у мене OpenSSH_7.6p1на моєму комп’ютері Mac з домашньої мови (остання доступна) і цей прапор, здається, не працює - -qпараметр доступний у довідці, але він не змінює ключ, щоб додати вихід.
австрійман

1
-qне працює і на Kubuntu 18.04.
системович
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.