Membuat ssh benar-benar hening

15

Saya setengah jalan menulis naskah nagios dan saya sudah jengkel dengan SSH.

Menurut halaman manual:

-q       Quiet mode.  Causes all warning and diagnostic messages to be
         suppressed.

Namun jika saya mengaktifkan flag senyap dan kemudian melewati port yang tidak valid, saya masih mendapatkan kesalahan:

$ ssh user@localhost -q -p test
Bad port 'test'

Ini adalah masalah, karena itu akan membuat pesan itu menjadi baris pertama dan itulah yang diraih oleh Nagios. Saya perlu menampilkan sesuatu seperti "Peringatan | kesalahan SSH" setelah mengambil != 0kode keluar dari ssh, tetapi baris pertama yang saya dapat hasilkan akan menjadi baris 2.

Bagaimana saya bisa membuat SSH BENAR-BENAR diam?

Catatan: Saya tidak yakin apakah akan mengirim pertanyaan ini di serverfault, di superuser atau di stackoverflow. Aku pergi dengan serverfault sebagai basis pengguna mungkin paling berpengalaman dengan cli SSH dan solusi scripting cli.

SimonJGreen
sumber
2
Bukan berarti itu sangat membantu, tetapi sepertinya manual telah diperbarui untuk mencerminkan hal ini. Pada OpenSSH 5.8 (dan mungkin sebelumnya), ini menyatakan bahwa " sebagian besar peringatan dan diagnostik" akan ditekan, alih-alih " semua peringatan dan diagnostik".
James Sneeringer
heh menyebalkan! tempat yang bagus.
SimonJGreen
Mengapa tidak menghindari mencoba terhubung ke port yang tidak valid?
Zoredache
1
@Zoredache Ini kesalahan penangkapan / penanganan. Menghindari kesalahan ketik tidak menyelesaikan masalah bagaimana menangani dengan anggun;)
SimonJGreen

Jawaban:

25
ssh user@localhost -q -p test 2> /dev/null 

akan dialihkan stderrke / dev / null.

Sven
sumber
2
Sekarang saya merasa seperti sebuah tit yang lengkap. Akan mengajarkan saya untuk menjadi pengkodean larut malam!
SimonJGreen
-2

Atau, metode penyimpanan termudah LogLevel QUIETdalam file konfigurasi:

$ cat ~/.ssh/config 
Host *
  IdentityFile ~/.ssh/id_rsa
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  LogLevel QUIET
  ...

Berakhir mendapatkan hasil yang sama seperti di atas dengan mengetik jauh lebih sedikit.

Bersulang

todd_dsm
sumber
1
Saya menurunkan jawaban karena itu tidak menyelesaikan masalah yang ditanyakan di sini:% ssh -p test -oLogLevel = TUIET localhost Bad port 'test'
cstamas