使ssh真正安静


15

我已经完成了编写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 TRULY安静?

注意:我不确定是否要在服务器故障,超级用户或stackoverflow上发布此问题。我使用serverfault的原因是,用户群可能最熟悉cli SSH和cli脚本解决方法。


2
并不是真的有帮助,但看起来手册已进行了更新以反映这一点。从OpenSSH 5.8(可能更早)开始,它声明将禁止显示“ 大多数警告和诊断”,而不是“ 所有警告和诊断”。
James Sneeringer 2012年

讨厌 好地方。
SimonJGreen 2012年

为什么不避免尝试连接到无效端口呢?
Zoredache 2012年

1
@Zoredache这是错误捕获/处理。避免输入错误并不能解决如何
妥善

Answers:


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

将重定向stderr到/ dev / null。


2
现在,我感觉就像一只完整的山雀。会教我在深夜编码!
SimonJGreen 2012年

-2

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

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

最终得到与上面相同的结果,而键入的次数减少了。

干杯


1
我拒绝回答这个问题,因为它不能解决在这里提出的问题:%ssh -p test -oLogLevel = QUIET localhost不良端口“ test”
cstamas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.