4

Groundwork / Nagios を使用しており、check_by_ssh を設定しようとしています。現在、コマンドは次のとおりです。

$USER1$/check_by_ssh -i ~nagios/.ssh/id_dsa -H $HOSTADDRESS$ -t 60 -l "$USER24$" -C "/tmp/test"

/tmp/test は Hello World プログラムです。

しかし、それはメッセージを返しています "Remote command execution failed:********************************************"

$HOSTADDRESS$Nagios が としてログインするように ssh キーをセットアップしました$USER24$が、まだエラーが発生します。(秘密鍵は下地ボックスの ~nagios/.ssh にあり、公開鍵はリモートホストの ~/$USER24$/.ssh にあります)

したがって、基本的に、check_by_ssh はどのプログラムも実行できません。

4

9 に答える 9

13

何らかの理由で、「-E」フラグを追加すると修正されました。check_by_ssh man pageによると、これは無視される STDERR フラグです。/tmp/test から出力を取得します。

最終コマンド:

$USER1$/check_by_ssh -i ~nagios/.ssh/id_dsa -H $HOSTADDRESS$

-t 60 -l "$USER24$" -C "/tmp/test" -E

最終出力:

こんにちは世界

于 2011-06-22T18:00:58.950 に答える
8

check_by_sshキーの信頼性を検証する必要があるために が失敗する場合check_by_sshは、ssh クライアントの場合と同様に、オプションで厳密なホスト キー チェックを無効にすることができます。これはセキュリティ上のわずかな犠牲ですが、信頼できるプライベート ネットワークを使用している場合、トレードオフは無視できるものであり、最初の試行であっても、接続を継続するかどうかを確認する必要はありません。

/usr/lib/nagios/plugins/check_by_ssh -l nagios -o StrictHostKeyChecking=no
于 2012-11-28T18:02:42.960 に答える
4

私のシステムのいくつかでこれに遭遇しました。私はそれを理解できませんでしたが、 -E フラグが役に立ちました。ホストでこれが発生していた理由は、SSH バナーを有効にして、標準の「無許可の使用は法律で禁止されています」を表示できるようにしたためです。そのバナーは stderr 経由で表示されるため、各 check_by_ssh 呼び出しは「リモート コマンドの実行に失敗しました」で失敗しました。

したがって、ホスト キーが問題ではなく、-E に満足できない場合は、バナーを削除してください。Nagios チェックに一貫したユーザー名を使用する場合、sshd_config の Match オプションを使用して、nagios ユーザーをバナーの表示から除外できます。

https://unix.stackexchange.com/questions/96975/disable-ssh-banner-for-specific-users-or-ips

于 2015-03-03T14:15:50.820 に答える
4

私の場合、エラーはnagiosが到達したsshサービスの公開鍵の更新によるものでした。

Nagios がインストールされている監視マシンで、ファイル「/var/spool/nagios/.ssh/known_hosts」を更新または削除して、すべての公開鍵を削除します。

check_by_ssh を再試行してください。

例 :

# ./check_by_ssh -H target_machine -C "/bin/ls" 
Remote command execution failed: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

# rm /var/spool/nagios/.ssh/known_hosts

#  ./check_by_ssh -H target_machine -C "/bin/ls /" 
bin
boot
cgroup
core
data
dev
etc
home
...
于 2013-06-27T08:48:47.820 に答える
3

最初は手動でコマンドを実行する必要があります。これは、yes と答える必要がある質問をするためです。その後、対話は不要になります。

接続するサーバーごとにこれを行う必要があります。

于 2012-08-07T16:58:28.693 に答える
0

Icinga 2 の check_by_ssh で同じ問題が発生しました。

コマンドオブジェクトで vars.by_ssh_quiet = "true" を設定して修正しました(Icinga 2 doc link)。

object CheckCommand "by_ssh_redis" {
  import "by_ssh"
  vars.by_ssh_command = [ "/usr/lib64/nagios/plugins/check_redis.pl", "-H", "localhost"]
  vars.by_ssh_quiet  = "true"
}
于 2016-05-14T07:38:41.323 に答える
0

公開鍵を設定した場合は、SSH次のようにコマンドで鍵を渡す必要があります。

command_line    $USER1$/check_by_ssh -i /usr/local/nagios/etc/keys/$HOSTNAME$ -H $HOSTADDRESS$ -t 60 -l "$USER24$" -C "cd tmp"

公開鍵に権限があることを確認してください0600

于 2011-06-22T12:51:19.410 に答える