Silence ssh-add


12

私はいくつかのタスクを実行するcronjobを持っており、スクリプトの最初に実行されるssh-add呼び出しです(適切なキーを使用してユーザーとして実行されないため、追加する必要があり、将来的にはバージョン管理で定義されたキーをデプロイします)。これは次のようになります。

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

このcronjobは定期的に実行されるため、沈黙させたいと思います。受信トレイにたくさんのメールがあり、それらは「はい、キーが追加された」とまったく意味がありません。git pullのリモート接続がハングアップするなど、問題が発生した場合にのみメールが必要です。

だからTLDR、私はこれを見続けます:

追加されたID:/home/tomjn/.ssh/id_rsa(/home/tomjn/.ssh/id_rsa)

どうすればシャットダウンできますか?

私は次のようなことを試しました:

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

しかし、役に立たない。マニュアルページに--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をざっと見てみると、ソースコードにオプションがないことが確認できます。他のオプションは、「追加された」メッセージを明確にフィルターすることですが、bashでは、これは通常、エラー処理を妨害します(set -eu実行時の健全性チェックが必要な場合)。ここではこれらすべてが重要であるというヒントはないので、stderrをリダイレクトするだけで十分です。
ステフェイン・グーリッホン

4
マニュアルページにこのオプションが追加されました。 また、リンクしたコードのヘルプ出力にこのフラグについての記述があります 。フラグはこのコミットで追加されましたがOpenSSH_7.6p1、自分のMacでHomebrewから使用しています(最新のもの)このフラグは機能していないようです-この-qオプションはヘルプで利用できますが、キーの追加出力は変更されません。
オースティンハイマン2018

1
-qKubuntu 18.04でも機能しません。
systemovich
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.