# SSHプラグイン

{% hint style="warning" %}
パスワードのローテーションには、KeeperPAMによるゼロトラスト方式もあります。ほとんどの用途では、そちらの利用を推奨します。詳細は以下をご参照ください。

* [KeeperPAMを使用したパスワードローテーション](/keeperpam/jp/secrets-manager/password-rotation.md)
* [コマンダーのKeeperPAMコマンド](/keeperpam/jp/commander-cli/command-reference/keeperpam-commands.md)
  {% endhint %}

Keeperコマンダー用のSSHプラグインを使用すると、1つまたは複数のターゲットシステムに対して、SSH鍵の生成およびローテーションが可能になり、ローカルユーザーやリモートユーザーのUnix/Linuxパスワードのローテーションもできます。

## 前提条件

### SSH鍵のローテーション

#### OpenSSLとOpenSSHのインストール

このプラグインを使用するには、**OpenSSL**と**OpenSSH**のパッケージが、Keeperコマンダーを実行するコンピュータにインストールされている必要があります。

インストールを確認するには、ターミナルアプリケーションを開き、`「openssl」`コマンドと`「ssh」`コマンドがインストールされ、システムの**PATH**環境変数でアクセスできることを確認します。

### SSHパスワードのローテーション

プラグイン名: `ssh`

## ローテーション用のレコードを準備

ローテーションは、従来のレコードにもタイプ指定されたレコードにも対応しています。 タイプ指定されたレコードを使用する場合は、「ログイン」タイプのフィールドが必要です。 ローテーションの種類に応じて、その他のフィールドを追加することもできます。 以下の手順をご参照ください。

標準の「SSH鍵」レコードタイプがSSHローテーションに適しています。

{% hint style="info" %}
従来のレコードとタイプ指定のあるレコードの詳細については、[トラブルシューティング](/keeperpam/jp/commander-cli/troubleshooting-commander-cli.md#typed-vs-untyped-records-v3-vs-v2)をご参照ください。
{% endhint %}

### ログイン名を設定

#### Keeperのレコードの「ログイン」フィールドにターゲットシステムのログイン名を入力します。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FEFluCd5JF3Dbj1hRnEmu%2Fimage.png?alt=media&#x26;token=aac7aa2f-c457-4a80-8347-b41efdec8b03" alt=""><figcaption></figcaption></figure>

### ホスト名とポートを設定

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2Fo8QS2rAWrd8G0ZcZcRoJ%2Fimage.png?alt=media&#x26;token=956237f7-0ed2-4b24-80fe-48eac5efe316" alt=""><figcaption></figcaption></figure>

タイプ指定されていないレコードを使用する場合は、ホストとポートをカスタムフィールドに設定できます。以下をご参照ください。

{% hint style="info" %}
ヒント: ローテーションプラグインを指定していない場合、コマンダーはポート番号からローテーション方式を推測します。ポート22ならSSHローテーションになります。
{% endhint %}

### その他のローテーション設定

ローテーションパラメータをカスタマイズできる値は以下のとおりです。 これらのオプションをテキストフィールドとしてレコードに追加し、表に示すように、パラメータに相当するラベルを設定します。

| ラベル         | 値                                                      | コメント                                                                              |
| ----------- | ------------------------------------------------------ | --------------------------------------------------------------------------------- |
| cmdr:plugin | sshkey \| ssh                                          | （任意）SSH鍵またはSSHパスワードのローテーションを使用するようにコマンダーに指示します。レコードに設定するか、ローテーションコマンドで指定する必要があります |
| cmdr:host   |                                                        | （任意）ターゲットサーバーのホスト名またはIPアドレス。レコードのホストフィールドに入力していない場合はカスタムフィールドとして追加できます            |
| cmdr:rules  | <p>「大文字の数, 小文字の数, 数字の数, 記号の数」</p><p>(たとえば、4,6,3,8)</p> | （任意）パスワード生成ルール                                                                    |

{% hint style="info" %}
SSH鍵をローテーションする場合、ターゲットサーバーの公開鍵のローテーションを自動化するには、ターゲットホストの.ssh/authorized\_keysの公開鍵を手動で`1回`更新する必要があります。

これを初回に設定すると、それ以降のローテーションはコマンダーによって自動的に更新されます。
{% endhint %}

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2F1XNYCDezVqaFl8LkWmw7%2Fimage.png?alt=media&#x26;token=9b4b947c-f24b-4e5c-8491-7d0b2fade3a9" alt=""><figcaption></figcaption></figure>

## ローテーション

### SSH鍵のローテーション

#### 初期設定と実行

このプラグインを初めて設定する場合は、以下の手順に従ってください。

#### 1. Keeperのレコードを入力

Keeperのレコードのタイトル、ログイン、ホスト名またはIP、ポートの各フィールドに入力します。

#### 2. rotateコマンドを実行して公開鍵を格納

このレコードに対して、Keeperシェルで`rotate`コマンドを実行します。コマンダーは公開鍵と秘密鍵を生成し、それらをレコードに格納します。公開鍵をコピーまたは保存し、ターゲットホストの`.ssh/authorized_keys`ファイルに保存します。この手順は、最初に手動で行うか、または`ssh-copy-id`コマンドを使用してください。

**ターゲットシステムのauthorized\_keysファイルのパーミッションを設定してください。**`chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys`

#### 3. 鍵のローテーションを実行

Keeperシェルで`rotate`コマンドを実行して、完全なローテーションを実行します。ローテーションに成功すると、ターゲットホストは新たに生成された公開鍵で更新され、Keeperのレコードは秘密鍵と公開鍵のペアで更新されます。

```
rotate "SSH Credentials" --plugin sshkey
```

{% hint style="info" %}
このプラグインは、ターゲットシステムがSSHサービスのデフォルト設定 (ユーザーの**ホーム**ディレクトリの`.ssh`ディレクトリにある`authorized_keys`ファイル) を使用することを前提としています。
{% endhint %}

{% hint style="info" %}
`rotate` コマンドについて詳しくは、[パスワードローテーションコマンドのページ](/keeperpam/jp/commander-cli/command-reference/plugins/password-rotation.md)をご参照ください。
{% endhint %}

### SSHパスワードのローテーション

SSHのパスワードをローテーションするには、コマンダーで`rotate`コマンドを使用します。 コマンドにレコードタイトルもしくはUIDを渡します (複数のレコードを1度にローテーションさせるには、正規表現で`--match`を使用します)。

```
rotate "SSH Credentials" --plugin ssh
```

{% hint style="info" %}
プラグインは、こちらに示すようにコマンドに指定することも、レコードのフィールドに追加することもできます (上記のオプションを参照)。 指定しない場合、コマンダーはポートフィールドを使用して、使用するプラグインを識別します。 この場合、ポート22はsshプラグインが使用されることを意味します。\
レコードにプラグインタイプを追加すると、プラグインの異なる複数のレコードを1度にローテーションできます。
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/keeperpam/jp/commander-cli/command-reference/plugins/ssh-plugin.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
