[comment]: # translation:outdated

[comment]: # ({26d9bc44-26d9bc44})
# 9 SSH チェック

[comment]: # ({/26d9bc44-26d9bc44})

[comment]: # ({e55d5f51-4cdff2c1})
#### 概要

SSHチェックはエージェントレスで実行できます。SSHチェックを行うためにはZabbixエージェントは必要ありません。

SSHチェックを実行するには、Zabbixサーバーを構築時の最初に[configure](/manual/installation/install#from_the_sources)する際にSSH2(libssh2またはlibsshで)をサポートするようにする必要があります。以下、参照：
[必要な要件](/manual/installation/requirements#server).

::: noteimportant
RHEL 8以降では、libsshだけがサポートされています。
:::

[comment]: # ({/e55d5f51-4cdff2c1})

[comment]: # ({5d32b87c-5d32b87c})
#### 設定

[comment]: # ({/5d32b87c-5d32b87c})

[comment]: # ({753f5c30-753f5c30})
##### パスフレーズ認証

SSHチェックには、ユーザ/パスワードペアとキーファイルベースの2つの認証方法があります。

鍵を使用しない場合、ソースからビルドする場合は、libssh2/libsshをZabbixにリンクする以外に、追加の設定は必要ありません。

[comment]: # ({/753f5c30-753f5c30})

[comment]: # ({ae5c7075-44fd07da})
##### キーファイル認証

SSHアイテムに鍵ベースの認証を使用するためには、サーバーに特定の設定を行うことが必要です。

Zabbixサーバーの設定ファイル([zabbix_server.conf](/manual/appendix/config/zabbix_server))をroot権限で開き、以下の行を確認します。

    # SSHKeyLocation=

コメントを外して、公開鍵と秘密鍵が格納されるフォルダのフルパスを設定します。

    SSHKeyLocation=/home/zabbix/.ssh

ファイルを保存し、その後 zabbix\_serverを再起動します。

*/home/zabbix* ここに *zabbix* ユーザアカウントのホームディレクトリがあります。*/.ssh は、ホームディレクトリ内で[ssh-keygen](http://en.wikipedia.org/wiki/Ssh-keygen) コマンドを使用して公開鍵と秘密鍵を生成するディレクトリです。

通常、様々なOSディストリビューションからのzabbix-serverインストールパッケージでは、あまり知られていない場所（システムアカウントのように）にホームディレクトリを持つ*zabbix*ユーザーアカウントを作成します。例えば */var/lib/zabbix*) 。

鍵の生成を開始する前に、ホームディレクトリをより良く知られた場所(直感的に予想できる場所)に再配置するアプローチを検討することができます。これは、前述の *SSHKeyLocation* というZabbix server の設定パラメータに対応します。

[ソースコードからのインストール](/manual/installation/install#create_user_account)に従って手動で *zabbix* アカウントを追加した場合、ホームディレクトリが既に */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*) は、デフォルトで Zabbixサーバーの *SSHKeyLocation* 設定パラメータに対応する */home/zabbix/.ssh* ディレクトリに生成されています。

::: noteimportant
"rsa" 以外の鍵の種類は、ssh-keygenツールやSSHサーバーではサポートされていますが、Zabbixで使用されているlibssh2ではサポートされていない場合があります。
:::

[comment]: # ({/ae5c7075-44fd07da})

[comment]: # ({7e6b0273-7e6b0273})
##### シェル設定フォーム

この手順は、SSH チェックで監視する各ホストに対して 1 回だけ実行する必要があります。

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

    # 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 ログインを<br>
確認することができるようになります:

    # sudo -u zabbix ssh root@10.10.10.10

ログインに成功した場合は、シェルの設定が終了し、リモートSSHセッションを閉じることができます。

[comment]: # ({/7e6b0273-7e6b0273})

[comment]: # ({a368612b-fe23daa8})
##### アイテム設定

実行する実際のコマンドは、アイテム設定の **実行するスクリプト** フィールドに記載する必要があります。

複数のコマンドを実行するには、複数行にコマンドを記載することで実行できます。 この場合、返される値も複数行としてフォーマットされます。

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

すべての必須入力フィールドには赤いアスタリスクが付いています。

SSH アイテムの特定の情報を必要とするフィールドは次のとおりです。

|パラメータ|説明|コメント|
|--|------|------|
|*タイプ*|**SSHエージェント**を選択| |
|*キー*| (ホストごとに) 一意なアイテム キーフォーマット **ssh.run\[<unique short description>,<ip>,<port>,<encoding>\]**|<unique short description> は必須であり、ホストごとにすべての SSH アイテムに対して一意である必要があります<br>デフォルト ポートは 22 であり、このアイテムが割り当てられているインターフェイスで指定されたポートではありません|
|*認証方法*|"パスワード"または"公開鍵"のいずれか| |
|*ユーザー名*|リモート ホストで認証するユーザー名<br>必須| |
|*公開鍵ファイル*|*認証方式*が"公開鍵"の場合の公開鍵ファイル名。必須|例: *id\_rsa.pub* - [ssh-keygen](http://en.wikipedia.org/wiki/Ssh-keygen)コマンドによって生成されるデフォルトの公開鍵ファイル名|
|*秘密鍵ファイル*|*認証方式*が"公開鍵"の場合の秘密鍵ファイル名。 必須|例: *id\_rsa* - デフォルトの秘密鍵ファイル名|
|*パスワード* |認証するためのパスワードまたはパスフレーズ **秘密鍵に使用された場合**|パスフレーズが使用されていない場合は、*パスワード*フィールドを空にします<br>パスフレーズの使用については[既知の問題](/manual/installation/known_issues#ssh_checks)も参照してください|
|*実行するスクリプト*|SSH リモート セッションを使用してシェル コマンドを実行します|例:<br>*date +%s*<br>*service mysql-server status*<br>*ps auxww \| grep httpd \| wc -l*|

::: noteimportant
libssh2 ライブラリは、実行可能スクリプトを ~32kB に切り詰める場合があります。
:::

[comment]: # ({/a368612b-fe23daa8})
