zabbixのSSHエージェントで認証方式にパスワードを設定しましたが公開鍵方式も使えるようなので設定してみました。
zabbixの鍵を作成する
ssh-keygenを使ってzabbixが使う鍵を作成します。
$ sudo -u zabbix ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/zabbix/.ssh/id_rsa): Created directory '/home/zabbix/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/zabbix/.ssh/id_rsa. Your public key has been saved in /home/zabbix/.ssh/id_rsa.pub. The key fingerprint is: **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:** zabbix@local $
公開鍵を監視対象のサーバにコピーする
ssh-copy-idコマンドを使って安全に監視対象サーバに公開鍵をコピーします。
$ sudo -u zabbix ssh-copy-id -i /home/zabbix/.ssh/id_rsa.pub [監視用ユーザ]@[監視対象サーバ]
下記のようにリモートコマンド実行で動作を確認することができます。
パスフレーズは、ssh-keygenで指定したものでパスワードではありません。
$ sudo -u zabbix ssh [監視用ユーザ]@[監視対象サーバ] ls Enter passphrase for key '/home/zabbix/.ssh/id_rsa':
zabbix_server.confの設定
SSHKeyLocationパラメータにssh-keygenで作成した鍵があるディレクトリを設定し、zabbixを再起動します。
$ sudo bzr diff === modified file 'zabbix/zabbix_server.conf' --- zabbix/zabbix_server.conf 2012-04-10 05:31:33 +0000 +++ zabbix/zabbix_server.conf 2012-04-10 05:40:31 +0000 @@ -386,7 +386,7 @@ # Mandatory: no # Default: -# SSHKeyLocation= +SSHKeyLocation=/home/zabbix/.ssh
SSHエージェントの設定
基本的な設定は、SSHエージェントと同じです。
認証方式を「パスワード」から「公開鍵」、ユーザ名に監視対象サーバの監視用ユーザ、公開鍵ファイルにssh-keygenで作成した公開鍵「id_rsa.pub」、秘密鍵ファイルに同じく「id_rsa」、パスワードにはssh-keygenで入力したパスフレーズを指定します。
何が嬉しいか
パスワードの管理がzabbixサーバで完結することでしょうか。
認証方式がパスワードだとzabbixの設定変更と監視対象の監視用ユーザのパスワード変更の2ヶ所を変更する必要があります。
監視用ユーザを他の運用で使っていたりするとパスワード変更が思わぬところに波及する可能性を拭えません。
公開鍵方式にした場合、パスフレーズの変更はzabbixサーバ一箇所で集中して管理できます。