# -\#9 SSH チェック

#### - 概要

SSHチェックはエージェントレスの監視に使用されます。SSHチェックを行う場合、Zabbixエージェントは必要ありません。

SSHチェックを実行するには、Zabbix
サーバが最初にSSH2サポートで[設定](/jp/manual/installation/install#from_the_sources)されている必要があります。

<note
important>サポート対象のlibssh2ライブラリの最小バージョンは1.0.0です。
:::

#### - 設定

##### - サーバの設定

デフォルトでは、Zabbix
サーバーはSSHチェックを実行する設定にはなっていないので、追加されたSSHアイテムはいずれも動作しません。これを変更するには、rootでZabbixサーバの設定ファイル（[zabbix\_server.conf](/jp/manual/appendix/config/zabbix_server)）を開き、次の行を探します：

    # SSHKeyLocation=

このコメントをはずし、公開鍵および秘密鍵が置かれるフォルダへのフルパスを設定します。

    SSHKeyLocation=/home/zabbix/.ssh

ファイルを保存し、その後zabbix\_serverを再スタートします。

この例での /home/zabbix は、zabbix
ユーザーアカウントのホームディレクトリであり、.sshは、そのホームディレクトリ内で[ssh-keygen](http://en.wikipedia.org/wiki/Ssh-keygen)コマンドによって公開鍵と秘密鍵が生成されるデフォルトのディレクトリです。

通常、異なるOSのディストリビュータが提供しているzabbix-serverのインストールパッケージは、システムアカウントについては、よく知られていない場所のホームディレクトリでzabbix
ユーザーアカウントを作成します。 例えば、CentOSでは
/var/lib/zabbix、Debian では/var/run/zabbixです。

キーの生成を開始する前に、ホームディレクトリをよく知られた(直感的に予想されるような）場所に再配置する取り組みを、検討してもいいでしょう。このことは、上述のZabbix
サーバの設定パラメータ SSHKeyLocation にも言えます。

zabbixアカウントが、[インストールのセクション](/jp/manual/installation/install#ユーザーアカウントの作成)に従って手動で追加されている場合は、このステップは省略できます。なぜなら、その場合は、ホームディレクトリがすでに
/home/zabbix に置かれていることが考えられるからです。

zabbix
ユーザーアカウントの設定を変更するには、それを使用して動作しているすべてのプロセスを停止させる必要があります。

    # service zabbix-agent stop
    # service zabbix-server stop

ホームディレクトリ（存在する場合）の場所を変更するには、次のコマンドを実行してそれを移動させるよう試みます：

    # usermod -m -d /home/zabbix zabbix 

ホームディレクトリが古い場所に存在しなかったら、新しい場所に作成するということができます。それを安全に行うには：

    # test -d /home/zabbix || mkdir /home/zabbix

すべてが安全であることを確実にするには、ホームディレクトリにパーミッションを設定するために、次のコマンドを追加で実行します：

    # chown zabbix:zabbix /home/zabbix
    # chmod 700 /home/zabbix

これで、先ほど停止したプロセスを再スタートできます：

    # service zabbix-agent start
    # service zabbix-server start

公開鍵と秘密鍵を生成するステップは、コマンドを実行します。

    # 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:
    90:af:e4:c7:e3:f0:2e:5a:8d:ab:48:a2:0c:92:30:b9 zabbix@it0
    The key's randomart image is:
    +--[ RSA 2048]----+
    |                 |
    |       .         |
    |      o          |
    | .     o         |
    |+     . S        |
    |.+   o =         |
    |E .   * =        |
    |=o . ..* .       |
    |... oo.o+        |
    +-----------------+

注意：公開鍵と秘密鍵（id\_rsa.pub と id\_rsa
respectively）がデフォルトで、Zabbix server の
SSHKeyLocation設定パラメータと一致する /home/zabbix/.ssh
ディレクトリに生成されました。

##### - シェルの設定フォーム

このステップはSSHチェックで監視する各ホストに対して一度だけ実行します。

次のコマンドを使用して、SSHチェックがrootアカウントで実行されるように、リモートホスト10.10.10.10で**公開鍵**ファイルをインストールできます。

    # sudo -u zabbix ssh-copy-id root@10.10.10.10
    The authenticity of host '10.10.10.10 (10.10.10.10)' can't be established.
    RSA key fingerprint is 38:ba:f2:a4:b5:d9:8f:52:00:09:f7:1f:75:cc:0b:46.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '10.10.10.10' (RSA) to the list of known hosts.
    root@10.10.10.10's password: 
    Now try logging into the machine, with "ssh 'root@10.10.10.10'", and check in:
      .ssh/authorized_keys
    to make sure we haven't added extra keys that you weren't expecting.

これで、zabbixのユーザーアカウントにデフォルトの秘密鍵（/home/zabbix/.ssh/id\_rsa）を使っているSSHログインのチェックが可能になります。

    # sudo -u zabbix ssh root@10.10.10.10

ログインに成功したら、シェルの設定のパートが終了し、リモートのSSHセッションを終了できます。

##### - アイテムの設定

実行する実際のコマンドは、アイテム設定の\[**実行するスクリプト**\]フィールドで実行される必要があります。

複数のコマンドを実行するには、新しい行にそのコマンドを次々に配置します。この場合、戻り値も複数の行と同じ形式になります。

|アイテムパラメータ                           説明|コメント|<|
|------------------------------------------------------------|------------|-|
|**キー**                                     *|ssh.run\[<unique short description>,<ip>,<port>,<encoding>**\]のフォーマットでホストごとに一意なアイテムキー   <unique short descrip|ion>は必須で、ホスト毎にすべてのSSHアイテムが一意である必要があります。|
|**認証方式**                                 「パス|ード」 か 「公開鍵」のいずれか1つ|<|
|**ユーザー名**                               リモート|スト上で認証されるユーザー名<br>必須|<|
|**公開鍵ファイル**                           \[認証方式|]が「公開鍵」の場合の公開鍵のファイル名\                                                                                      例： id\_rsa.pub - コマンド [ssh-ke必須|gen](http://en.wikipedia.org/wiki/Ssh-keygen)で生成されるデフォルトの公開鍵ファイル名|
|**秘密鍵ファイル**                           \[認証方法|]が「公開鍵」の場合の秘密鍵のファイル名\                                                                                      例： id\_rsa - デフォルトの秘密鍵ファイル名必須|<|
|**パスワード**または**キーのパスフレーズ**   認証するためのパスワード、または|密鍵に使用されている場合のパスフレーズ                                                                 パスフレーズが使用されていない場合は\[キーのパスフレーズ\]のフィールドは空のままにします。|<|
|**実行するスクリプト**                       SSHリモートセ|ションを使用して実行されるシェルコマンド                                                                                  例：<br>|<date +%s<br>service mysql-server status<br>ps aux \| grep httpd \| wc -l|

アイテム設定の結果は、以下のようになります：

![](../../../../../assets/en/manual/config/items/itemtypes/ssh_item_config_example.png)

::: noteimportant
Debian、Ubuntuなど、いくつかの Linux
ディストリビューションは、libssh2ライブラリがインストールされている場合、パスフレーズつきの暗号化された秘密鍵をサポートしていません。
さらに詳細は、レポート[ZBX-4850](https://support.zabbix.com/browse/ZBX-4850)を参照してください。

:::

------------------------------------------------------------------------

*本ページは2013/05/03時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。\
最新の情報は右上の「Translations of this
page」から英語版を参照してください。*
