让 ssh 真正安静

让 ssh 真正安静

我已经编写了一半的 nagios 脚本,但遇到了 SSH 方面的烦恼。

根据手册页:

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

但是,如果我启用安静标志,然后传递无效端口,仍然会收到错误:

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

这是一个问题,因为这会使该消息成为输出的第一行,而 Nagios 会抓取该行。我需要在!= 0从 ssh 中获取退出代码后输出类似“警告|SSH 错误”的内容,但我可以输出的第一行将是第 2 行。

我怎样才能让 SSH 真正安静?

注意:我不确定是否应该在 serverfault、superuser 还是 stackoverflow 上发布这个问题。我选择了 serverfault,因为该用户群可能对 cli SSH 和 cli 脚本解决方法最有经验。

答案1

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

将重定向stderr到/dev/null。

答案2

或者,最简单的方法存储LogLevel QUIET在配置文件中:

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

最终获得与上面相同的结果,但输入的内容要少得多。

干杯

相关内容