ksaitoの日記

日々試したことの覚え書き

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サーバ一箇所で集中して管理できます。