Sprawiając, że ssh jest naprawdę cichy


15

Jestem w połowie pisania scenariusza nagios i denerwuje mnie SSH.

Według strony podręcznika:

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

Jeśli jednak włączę cichą flagę, a następnie przekażę nieprawidłowy port, nadal pojawia się błąd:

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

Jest to problem, ponieważ sprawi, że ten komunikat będzie pierwszym wierszem i to jest to, co przechwytuje Nagios. Muszę wyprowadzić coś takiego jak „Ostrzeżenie | Błąd SSH” po odebraniu != 0kodu wyjścia z ssh, ale pierwszą linią, którą mogę wypisać, będzie linia 2.

Jak mogę wyciszyć SSH TRULY?

Uwaga: nie byłem pewien, czy opublikować to pytanie w przypadku błędu serwera, superużytkownika czy przepływu stosu. Poszedłem z błędem serwera, ponieważ baza użytkowników jest prawdopodobnie najbardziej doświadczona w obejściu skryptów cli SSH i cli.


2
Nie to naprawdę pomaga, ale wygląda na to, że instrukcja została zaktualizowana, aby to odzwierciedlić. Począwszy od OpenSSH 5.8 (i być może wcześniej), stwierdza, że ​​„ większość ostrzeżeń i diagnostyki” zostanie pominięta, zamiast „ wszystkich ostrzeżeń i diagnostyki”.
James Sneeringer,

heh denerwujące! dobre miejsce.
SimonJGreen

Dlaczego nie uniknąć połączenia z nieprawidłowym portem?
Zoredache,

1
@Zoredache To jest łapanie / obsługa błędów. Unikanie literówki nie rozwiązuje problemu tego, jak sobie z nią poradzić z wdziękiem;)
SimonJGreen

Odpowiedzi:


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

przekieruje stderrdo / dev / null.


2
Teraz czuję się jak sikora. Naucz mnie kodowania późno w nocy!
SimonJGreen

-2

Lub najłatwiejsza metoda przechowywania LogLevel QUIETw pliku konfiguracyjnym:

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

W efekcie uzyskuje się taki sam wynik jak powyżej z dużo mniejszą ilością pisania.

Twoje zdrowie


1
Zanotowałem odpowiedź, ponieważ nie rozwiązuje ona problemu, o który tu pytano:% ssh -p test -oLogLevel = QUIET localhost Zły port „test”
cstamas
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.