Tornando o ssh verdadeiramente silencioso

15

Estou no meio da escrita de um script nagios e me incomodei com o SSH.

De acordo com a página do manual:

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

No entanto, se eu ativar o sinalizador silencioso e passar uma porta inválida, ainda recebo um erro:

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

Isso é um problema, porque isso fará com que a mensagem seja a primeira linha e é isso que Nagios captou. Eu preciso produzir algo como "Warning | SSH error" depois de pegar um != 0código de saída do ssh, mas a primeira linha na qual eu posso gerar a saída será a linha 2.

Como posso deixar o SSH TRULY quieto?

Nota: Eu não tinha certeza se publicaria esta pergunta na falha do servidor, no superusuário ou no fluxo de pilha. Fui com o serverfault, pois a base de usuários provavelmente é mais experiente com cli SSH e soluções alternativas de script cli.

SimonJGreen
fonte
2
Não que isso realmente ajude, mas parece que o manual foi atualizado para refletir isso. No OpenSSH 5.8 (e talvez mais cedo), ele afirma que "a maioria dos avisos e diagnósticos" será suprimida, em vez de " todos os avisos e diagnósticos".
James Sneeringer
heh irritante! bom local embora.
precisa saber é o seguinte
Por que não evitar tentar se conectar a uma porta inválida?
precisa saber é o seguinte
1
@Zoredache Este é um erro ao capturar / manipular. Evitar um erro de digitação não resolve o problema de como lidar com uma graciosa;)
SimonJGreen

Respostas:

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

será redirecionado stderrpara / dev / null.

Sven
fonte
2
Agora eu me sinto como um tit completo. Vai me ensinar a codificar tarde da noite!
SimonJGreen
-2

Ou, o método mais fácil de armazenar LogLevel QUIETno arquivo de configuração:

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

Termina obtendo o mesmo resultado acima com muito menos digitação.

Felicidades

todd_dsm
fonte
1
I downvoted a resposta, porque isso não resolve a questão que foi perguntado aqui:% ssh -p teste -oLogLevel = QUIET localhost Bad porta 'teste'
cstamas