Ssh

讓 ssh 真正安靜

  • October 8, 2021

我正在編寫一個 nagios 腳本,但我遇到了 SSH 的煩惱。

根據手冊頁:

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

但是,如果我啟用 quiet 標誌然後傳遞一個無效埠,我仍然會收到錯誤消息:

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

這是一個問題,因為這會使該消息成為第一行,而這正是 Nagios 所抓住的。從 ssh 獲取退出程式碼後,我需要輸出類似“警告|SSH 錯誤”的內容!= 0,但我可以輸出的第一行將是第 2 行。

如何讓 SSH 真正安靜?

注意:我不確定是否在 serverfault、超級使用者或 stackoverflow 上發布這個問題。我選擇了 serverfault,因為使用者群可能對 cli SSH 和 cli 腳本變通辦法最有經驗。

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

將重定向stderr到 /dev/null。

或者,最簡單的方法儲存LogLevel QUIET在配置文件中:

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

最終得到與上面相同的結果,但輸入更少。

乾杯

引用自:https://serverfault.com/questions/349454