Diam ssh-add

12

Saya memiliki cronjob yang menjalankan beberapa tugas, dan pada awal skrip dijalankan adalah ssh-add call (tidak berjalan sebagai pengguna dengan kunci yang sesuai sehingga perlu ditambahkan, dan di masa depan mungkin akan menggunakan gunakan kunci yang didefinisikan dalam kontrol versi). Ini terlihat seperti ini:

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

Saya ingin membungkamnya, karena cronjob ini berjalan secara teratur, dan saya memiliki banyak email di kotak masuk saya yang sama sekali tidak berguna bagi saya yang menyatakan bahwa ya, kuncinya ditambahkan. Saya hanya ingin email ketika ada masalah, seperti koneksi remote git pull menutup dll, yang memang terjadi.

Jadi TLDR, saya terus melihat ini:

Identitas ditambahkan: /home/tomjn/.ssh/id_rsa (/home/tomjn/.ssh/id_rsa)

Bagaimana saya tutup mulut?

Saya sudah mencoba hal-hal seperti:

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

Tetapi tidak berhasil. Halaman manual tidak menunjukkan bahwa ada --quietparameter, apakah ada hal lain yang bisa saya lakukan untuk mematikan output?

Tom J Nowell
sumber

Jawaban:

18

Output dari ssh-addperintah ada di STDERR. Anda perlu mengarahkan STDERR ke / dev / null untuk menekan output:

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

atau secara alternatif menekan semua output dengan mengakhiri perintah dengan >/dev/null 2>&1

mtak
sumber
2
Bendera yang tenang akan lebih halus karena akan memungkinkan untuk membungkam operasi normal sambil membiarkan kesalahan (seperti kunci tidak ditemukan, atau tidak dapat dibaca) terlihat. Melihat sekilas pada github.com/openssh/openssh-portable/blob/master/ssh-add.c menegaskan bahwa tidak ada opsi dalam kode sumber. Pilihan lain adalah secara khusus memfilter pesan "ditambahkan", tetapi dalam bash ini biasanya mengganggu penanganan kesalahan (jika Anda peduli set -euuntuk beberapa pemeriksaan kewarasan waktu berjalan). Tidak ada petunjuk bahwa semua ini penting di sini, jadi hanya mengarahkan ulang stderr sudah cukup.
Stéphane Gourichon
4
Sekarang ada opsi untuk ini di halaman manual. Juga, kode yang Anda tautkan sekarang memiliki penyebutan flag ini dalam output bantuan . Bendera telah ditambahkan dalam komit ini. Namun, saya miliki OpenSSH_7.6p1di mac saya dari homebrew (tersedia terbaru) dan flag ini tampaknya tidak berfungsi - -qopsi tersedia dalam bantuan, tetapi tidak mengubah output tambah kunci.
austinheiman
1
-qjuga tidak bekerja di Kubuntu 18.04.
systemovich