For the complete documentation index, see llms.txt. This page is also available as Markdown.

SSH接続

Keeperコネクション - SSHプロトコル

概要

KeeperPAMは、SSHプロトコルを利用してターゲットインフラへのゼロトラスト特権セッション管理を実現します。本ページでは、Keeperボルト内のPAMマシンレコードに対してSSH接続を設定する方法をご紹介します。ボルトからセッションが開始され、Keeperゲートウェイを経由して対象システムに直接安全なSSHセッションが確立されます。パスワード、SSH鍵、パスフレーズ付きSSH鍵、SSH証明書による認証など、複数のSSH認証方式に対応しています。

要件

まず、接続のはじめにのページに記載されている要件をご確認ください。

本プロトコルを設定するには、以下のPAMレコードが必要となります。

PAMレコード
説明

対象のインフラに関する情報が含まれています。

PAMマシンレコード

SSHプロトコル接続を確立したいエンドポイントに関する情報が含まれています。

PAMユーザーレコード

エンドポイントに接続するために使用されるユーザー認証情報が含まれています。

本ガイドでは、LinuxサーバーをPAMマシンレコードの例として使用します。

本ガイドでは、PAMマシンレコードの例としてLinuxサーバーを使用します。

PAM設定 - SSHプロトコルの構成

接続設定へのアクセス

対象のエンドポイントを使用してPAMレコードタイプ (PAMマシン、PAMデータベース、PAMディレクトリ) を作成した後、以下の手順でPAM設定画面の [接続] セクションに移動します。

  1. PAMレコードを編集します。

  2. PAM設定セクション内の [セットアップ] をクリックします。

  3. 表示されたウィンドウで [接続] セクションに移動します。

PAMマシンレコードのPAM設定

接続設定の構成

PAM設定画面でSSHプロトコル設定を構成する前に、以下のフィールドを構成する必要があります (必須)。

フィールド
説明

PAM構成

対象インフラの詳細を含み、PAMレコードで構成されているターゲットへのアクセスを提供します。

管理者認証情報レコード

リンクされたPAMユーザーで、ターゲットへの認証およびローテーションやアカウント作成などの管理操作に使用されます。

PAM設定のSSHプロトコルで構成できる接続設定は以下のとおりです。

接続パラメータ

接続パラメータ
フィールド
説明

プロトコル

必須 レコードに設定するプロトコルです。選択したプロトコルに基づいて、プロトコル設定が自動的に反映されます。本ページでは、SSHプロトコルを選択してください。

接続を有効にする

必須 このレコードで接続を有効にするには、このトグルをオンにします。

グラフィカルセッションの録画

有効にすると、このレコードに対してグラフィカルセッションの録画が有効になります。

テキストセッションレコーディング (Typescript)

有効にすると、このレコードに対してテキストセッションの記録 (Typescript) が有効になります。

キーイベント

有効にすると、セッション再生に個別のキー入力データが含まれるようになります。注: ユーザーが入力した機密情報も記録される可能性がありますのでご留意ください。

接続ポート

選択したプロトコル接続を確立するために使用されるポートです。デフォルトでは、PAMマシンレコードで定義されたポート値が使用されます。ここでポートを指定すると、デフォルトのポートが上書きされます。

SSHの場合、デフォルトのポートは22です。

接続用認証情報

構成すると、接続の認証にこれらの認証情報が使用されます。詳しくはこちらをご参照ください。

ボルトから認証情報を選択できるようにする

有効にすると、ユーザー自身の個人用認証情報を使用して接続を認証できるようになります。詳しくはこちらをご参照ください。

セッション終了時に接続用認証情報をローテーションする

有効にすると、セッション終了時に、構成された接続用認証情報が自動的にローテーションされます。

パブリックホストキー (Base64)

SSHサーバーのknown hostsエントリです。OpenSSHの known_hosts ファイルで指定される形式と同じ形式で入力してください。指定がない場合、ホストの正当性は検証されません。

カラースキーマ

SSH接続で使用されるターミナルエミュレーターのカラースキームを指定します。各カラースキームでは、ターミナルのデフォルトの前景色と背景色が定義されます。テキストの出力時に色を指定するプログラムがある場合は、これらのデフォルトが上書きされます。指定可能な値は以下のとおりです。

  • black on white: 白い背景に黒い文字

  • gray on black: 黒い背景に灰色の文字 (デフォルト)

  • green on black: 黒い背景に緑の文字

  • white on black: 黒い背景に白い文字

  • Custom: カスタムカラースキーマ

デフォルト値はwhite-blackです。

フォントサイズ

ターミナルセッションで表示されるフォントサイズです。

フォント名

使用するフォント名を指定します。指定しない場合は、デフォルトの monospace が使用されます。このフォントは、guacd を実行しているサーバーにインストールされているフォントである必要があり、等幅フォントを指定してください。等幅でないフォントを使用すると、文字ごとの表示が正しく描画されない場合があります。

最大スクロールバックサイズ

ターミナルの scrollback バッファに保持できる最大行数を指定します。デフォルトでは、scrollback バッファは最大1000行に制限されています。

SFTP

有効にすると、ユーザーはターミナルセッションにファイルをドラッグ&ドロップして、1つ以上のファイルを転送できます。

ファイルブラウザのルートディレクトリ

SFTPが有効になっている場合、ファイル転送は指定されたフォルダパスに保存されます。

クリップボードにコピー

有効にすると、接続されたプロトコルセッション内でコピーされたテキストはユーザーがアクセスできるようになります。

クリップボードから貼り付け

有効にすると、ユーザーは接続されたプロトコルセッション内でクリップボードからテキストを貼り付けることができます。

読み取り専用

この接続を読み取り専用にするかどうかを指定します。true に設定すると、接続では一切の入力を受け付けなくなります。ユーザーはターミナル (またはターミナル内で実行されているアプリケーション) を表示できますが、操作することはできません。

セッション/環境のパラメータ

デフォルトでは、SSHセッションは対話型シェルとして開始されます。使用されるシェルはSSHサーバー側で決定され、通常は chsh で設定されたユーザーの既定シェル、または /etc/passwd に定義された内容が参照されます。この動作を上書きして、特定のコマンドを実行したい場合は、SSH接続の構成でそのコマンドを指定できます。

フィールド
説明

コマンドを実行

SSHセッションで実行するコマンドを指定します。指定しない場合は、ユーザーの既定シェルが使用されます。

言語/ロケール ($LANG)

SSHセッションで使用するロケールを指定します。SSHサーバーの LANG 環境変数で受け付けられる値を指定できます。指定しない場合は、SSHサーバーの既定のロケールが使用されます。

このパラメータは LANG 環境変数を介してSSHサーバーに送られるため、SSHサーバーがSSHクライアントによる LANG 環境変数の設定を許可している場合にのみ効果があります。

タイムゾーン ($TZ)

SSHセッションで使用するタイムゾーンを指定します。SSHサーバーの TZ 環境変数で受け付けられる値を指定できます。通常はIANAタイムゾーンデータベースで定義されている標準名を使用します。指定しない場合は、SSHサーバーの既定のタイムゾーンが使用されます。

このパラメータは TZ 環境変数を介してSSHサーバーに送られるため、SSHサーバーがSSHクライアントによる TZ 環境変数の設定を許可している場合にのみ効果があります。

サーバーキープアライブ間隔

SSHサーバーへキープアライブパケットを送信する間隔を秒単位で指定します。0 を指定すると、キープアライブパケットは送信されません (デフォルトの動作)。指定できる最小値は 2 です。

ターミナル動作のパラメータ

多くの場合、Keeperコネクションマネージャーのターミナルエミュレーターは、デフォルトの動作のままで問題なく使用できます。ただし、特定のシステム (特にLinux以外のオペレーティングシステム) に接続する場合は、正しく動作させるためにターミナルの挙動を調整する必要があることがあります。KeeperのSSH対応では、バックスペースに送信される制御コードや、TERM 環境変数で通知されるターミナルタイプを制御するためのパラメータが用意されています。

フィールド
説明

バックスペース送信コード

バックスペースキーを押した際に送信される、ターミナル制御コードの数値を指定します。通常は変更する必要はありませんが、バックスペースを押しても文字が削除されず、^?^H といった制御文字が表示される場合は、このパラメータを調整する必要があります。デフォルトでは、制御コード 127(Delete) が送信されます。

ターミナルタイプ

SSHサーバーに渡されるターミナルタイプ文字列を指定します。この値は、SSHセッション内では TERM 環境変数として参照され、アプリケーションが送受信する制御文字に影響します。デフォルトでは、linux が使用されます。

接続認証方式

Keeperの接続は、以下のいずれかの方法で認証できます。

  • 接続用認証情報 PAMマシン、PAMデータベース、またはPAMディレクトリのレコードタイプに直接設定された「接続用認証情報」を使用して、ターゲットへのセッションが認証されます。ユーザーは接続のためにこの認証情報にアクセスする必要はありません。

  • 個人用認証情報 「ボルトから認証情報を選択できるようにする」が有効な場合、ユーザーは自分のKeeperボルトに安全に保存されている個人用またはプライベートの認証情報を使って、ターゲットへのセッションを認証できます。

  • 一時アカウント PAMマシンまたはPAMデータベースのリソースで一時アカウント機能が有効になっている場合、セッション専用の、システムが生成する時間制限付きの特権アカウントが作成されます。このアカウントはセッション終了後に自動的に削除され、常設の特権が排除されます。この方式は、ジャストインタイムアクセスに用いられ、対象システム上に永続的なアカウントを残しません。

接続の開始

PAMマシンレコードでSSHプロトコル接続の設定が完了すると、レコードに [起動] ボタン付きの接続バナーが表示されます。

[起動] をクリックすると、Keeperゲートウェイと対象マシンの間にSSH接続が確立されます。セッションはKeeperボルトにストリーミングされ、パスワードレスで完全に対話可能なSSH操作が行えます。

ファイル転送

転送 (受信)

SFTPファイル転送機能が有効になっている場合、ユーザーはファイルをターミナルセッションにドラッグ&ドロップして、ファイルをマシンに転送できます。

SFTPファイル転送オプション

ドラッグ&ドロップを通じて複数のファイルを同時に転送できます。

ファイルがターゲットマシンにアップロードされている間、Keeperボルトのドックエリアにファイル転送のステータスが表示されます。

ファイルのアップロードステータス

転送 (送信)

ファイルをSSHリモート接続からローカルに転送するには、セッション開始前にレコードの [接続設定] でSFTPを有効にしておきます。

SSHリモート接続からローカルファイルシステムにファイルを転送するには、リモートシステムに guacctl というツールをダウンロードして、アウトバウンド転送の実行に使用します。

guacctl をダウンロードして実行可能に設定します。

以下の構文を使用してファイルのダウンロードを開始します。

Windows サーバーへの SSH

SSHプロトコルは、Windowsサーバーにアクセスして、PowerShellコマンドやその他の管理操作を実行するためにも使用できます。

SSH接続と秘密鍵

本節では、オプションでパスフレーズで保護された秘密鍵を使ったSSH認証の構成方法を説明します。秘密鍵とパスフレーズはPAMユーザーレコードに安全に保存され、セッション起動時に自動で使用されます。ユーザーが認証情報にアクセスする必要はありません。

セッションはKeeperボルトからKeeperゲートウェイを経由して対象マシンに確立されます。ゲートウェイは保存されたパスフレーズで秘密鍵を復号し、ユーザーに代わって認証を行います。

Linuxサーバーの構成

既存のSSH認証情報で対象サーバーに接続します。本例ではRSA鍵ペアを使用しますが、Keeperは ed25519、ECDSA および libssh2 がサポートする鍵形式にも対応しています。ターミナルで以下のコマンドを順に実行します。

ステップ1 — オプションのパスフレーズ付きで鍵ペアを生成

以下の例に近いコマンドで鍵ペアを生成します。秘密鍵のパスフレーズは任意です。指定した場合は、秘密鍵とあわせてPAMユーザーレコードに保存されます。

注: パスフレーズを指定する場合は、シェルで解釈される特殊文字は避けてください。

ステップ2 — 公開鍵を許可リストに追加

新しい公開鍵を authorized_keys に追記し、対応する秘密鍵での接続をSSHサーバーが受け付けるようにします。

ステップ3 — ファイル権限を正しく設定

SSHは、ファイルやディレクトリの権限が緩すぎると鍵を黙って拒否します。次の3コマンドをすべて実行してください。

ステップ4 — 秘密鍵をコピー

秘密鍵を表示し、出力全体をクリップボードにコピーします。先頭行から末尾行まで含め、Keeperボルトのレコードに貼り付けます。

⚠️ -----BEGIN OPENSSH PRIVATE KEY----- から -----END OPENSSH PRIVATE KEY----- まで すべて コピーしてください。ヘッダーまたはフッターが欠けると、セッション起動時に Permission Denied / Aborted になります。

PAMユーザーレコードの作成

Keeperボルトで、秘密鍵とオプションのパスフレーズを保存する新しい PAMユーザー レコードを作成します。セッション起動時にゲートウェイがこれらを自動取得します。

ステップ5 — PAMユーザーレコードを作成

ボルトの適切なフォルダで [新規作成] をクリックし、レコードタイプに PAMユーザー を選び、次のフィールドを入力します。

フィールド

レコードタイプ

PAMユーザー

タイトル

わかりやすい名前 (例: ssh passphrase user authentication)

ログイン

対象サーバー上のSSHユーザー名 (例: linuxuser)

Private PEM Key

ステップ4の cat id_rsa_passphrase の出力をすべて貼り付け。BEGIN/END行を含め、表示どおりに入力してください。

Private Key Passphrase

ステップ1で入力したパスフレーズ

⚠️ Private PEM Key フィールドでヘッダー/フッターが欠けている、またはパスフレーズが誤っていると、セッション起動時に Permission Denied / Aborted. See logs. になることがあります。

[保存] をクリックしてレコードを保存します。

SSH鍵とオプションのパスフレーズを保存したPAMユーザー

PAMマシン接続の構成

ステップ6 — 接続設定を開く

対象サーバーのPAMマシンレコードを開き、PAM設定の [接続] に移動します。

  1. PAMマシンレコードの 歯車アイコン をクリックします。

  2. 表示されたウィンドウで [接続] タブに移動します。

ステップ7 — 接続パラメータを設定

[接続] タブで次のフィールドを設定します。

フィールド
説明

プロトコル

必須 — プロトコル一覧から SSH を選択

接続を有効にする

必須 — このレコードでセッションを許可するにはオンにする

セッションレコーディング

要件に応じて、グラフィカル録画、キーイベント、テキスト (Typescript) をオンまたはオフにする

接続ポート

SSH用ポート (既定は 22。環境に合わせて変更)

接続用認証情報

上記で作成したPAMユーザーを選択。ゲートウェイが自動で認証します

[更新] をクリックして接続設定を保存します。

接続の開始

接続設定を保存すると、PAMマシンレコードに [起動] 付きのSSHバナーが表示されます。[起動] をクリックするとKeeperゲートウェイ経由でセッションが開き、ゲートウェイがPAMユーザーから秘密鍵とパスフレーズを取得してサーバーに認証します。ユーザーが認証情報を直接扱うことはありません。

セッションヘッダーには、認証方式として 鍵ベースの認証のみ と表示されます。


トラブルシューティング

接続が "Permission Denied / Aborted. See logs." で失敗する場合は、次の順に確認してください。

#
確認項目
対処

1

ボルトに保存した秘密鍵が、サーバーで生成した鍵と一致しているか

サーバーで cat /home/linuxuser/.ssh/id_rsa_passphrase を再実行し、Private PEM Key フィールドに貼り直す

2

ボルトのパスフレーズが正しいか (前後に空白がないか)

PAMユーザーレコードを編集し、パスフレーズを慎重に再入力する

3

サーバーの authorized_keys に公開鍵があるか

cat /home/linuxuser/.ssh/authorized_keys で、linuxuser-passphrase で終わる鍵が含まれるか確認する

4

.ssh および authorized_keys の権限が正しいか

ステップ3の chmod / chown を再実行してから再接続する

接続の問題はゲートウェイのログでも確認できます。


SSH証明書ベースの認証

概要

SSH証明書認証では、組織は単一の認証局 (CA) を用いて多数のサーバーにまたがるユーザーを許可できます。各マシンにユーザーごとの公開鍵を配布する代わりに、次のように運用します。

  • 各ターゲットサーバーにCAの公開鍵を1回だけ配置する

  • 各ユーザーはCAから 署名付き証明書 を受け取る

  • 接続時にユーザーは 秘密鍵と署名付き証明書 を提示する

  • サーバーは信頼済みCAに対して証明書を検証する — ユーザーごとの authorized_keys は不要

本節では、CAのセットアップ、ユーザー証明書の署名、KeeperPAM接続レコードでの証明書認証の構成手順を説明します。


要件

  • デプロイ済みでオンラインのKeeperPAMゲートウェイ

  • 対象SSHサーバーを指すKeeperボルト上のPAMマシンレコード

  • サーバー側の初期構成のための対象マシンへのSSHアクセス

  • ローカルマシンまたはゲートウェイホストに ssh-keygen


ステップ1 — CA鍵ペアの作成

信頼できるマシン (ワークステーション、踏み台ホストなど) でCA鍵ペアを生成します。

次が生成されます。

  • keeper_ca — CA秘密鍵 (厳重に保管し、共有しない)

  • keeper_ca.pub — CA公開鍵 (サーバーに配置)

注: 本番環境ではCA秘密鍵をパスフレーズで保護してください。


ステップ2 — ターゲットサーバーでCAを信頼する設定

keeper_ca.pub を対象SSHサーバーにコピーし、SSHデーモン設定に TrustedUserCAKeys を追加します。

変更を反映するためSSHデーモンを再読み込みします。


ステップ3 — ユーザー鍵ペアの生成

PAM接続に使用するユーザーアカウント用の専用鍵ペアを生成します。

  • linuxuser_cert_key — ユーザー秘密鍵

  • linuxuser_cert_key.pub — ユーザー公開鍵 (CAが署名)


ステップ4 — CAでユーザー公開鍵に署名

パラメータ:

パラメータ
説明

-s keeper_ca

署名に使用するCA秘密鍵

-I "linuxuser-keeper"

証明書の識別子 (ログに表示)

-n linuxuser

プリンシパル — 対象のSSHログインユーザー名と一致させる

-V +52w

有効期間 (例: 現在から52週間。必要に応じて変更)

生成物: linuxuser_cert_key-cert.pub

証明書を確認します。

出力に次が含まれることを確認します。

  • Type: ssh-ed25519-cert-v01@openssh.com user certificate

  • Principals: 対象のログインユーザー名 (例: linuxuser)

  • Valid: 現在の日付を含む期間


ステップ5 — Keeperの認証情報レコードを作成または更新

SSH接続に使う認証情報レコードには、ユーザーの秘密鍵と署名済み証明書の両方を含める必要があります。

レコードタイプ

PAMユーザー レコードを使用します。証明書認証に必要なフィールドはPAMユーザーに標準で用意されており、カスタムフィールドは不要です。

フィールド

ログイン

対象サーバーのSSHユーザー名 (例: linuxuser)

Private PEM Key

linuxuser_cert_key の内容 — -----BEGIN OPENSSH PRIVATE KEY----- から -----END OPENSSH PRIVATE KEY----- までの秘密鍵ブロック

公開鍵

linuxuser_cert_key-cert.pub の内容 — 署名済み証明書 (平文の .pub ではない)。ssh-ed25519-cert-v01@openssh.com で始まる1行


ステップ6 — 認証情報レコードをPAMマシンに関連付ける

PAMマシンレコードで次を行います。

  1. Keeperボルトでレコードを開く

  2. 接続用認証情報 に、ステップ5で作成したレコードを指定する

  3. PAM設定でゲートウェイが オンライン であることを確認する


ステップ7 — 接続を起動する

PAMマシンレコードで [起動] をクリックします。ゲートウェイは認証情報レコードから秘密鍵とSSH証明書を取得し、認証時に両方をSSHサーバーに提示します。

サーバーはステップ2で構成した信頼済みCA公開鍵に対して証明書を検証します。ユーザーの authorized_keys エントリは不要です。


トラブルシューティング

"Permission Denied — Aborted. See logs."

ゲートウェイのログを取得し、guacd 関連の行を確認します。

よくある原因:

ログメッセージ
原因
対処

Public key authentication failed: Username/PublicKey combination invalid

サーバーが鍵または証明書を認識しない

/etc/ssh/sshd_configTrustedUserCAKeys があり、sshd を再読み込みしたか確認する

Auth key successfully imported だが接続に失敗

証明書が提示されていない

公開鍵フィールドに証明書が正しく入っているか確認する

Auth public key 行がまったくない

秘密鍵が空または不正

Private PEM Key フィールドに秘密鍵を貼り直す

sshd がCA設定を読み込んでいるか確認する

対象サーバーで次を実行します。

出力例:

証明書が有効で期限切れでないか確認する

Valid: の範囲外であれば、証明書を再署名してください。

証明書認証を直接試す (Keeperを経由せず)

SSHサーバーに到達できるマシンから次を実行します。

こちらは成功するのにKeeper接続だけ失敗する場合は、サーバーではなくレコードのフィールド対応に原因があります。

証明書の更新

証明書には署名時の -V で指定した有効期限があります。更新手順は次のとおりです。

  1. ユーザーの公開鍵をCAで再署名し (ステップ4)、新しい有効期間を設定する

  2. Keeperの認証情報レコードの 公開鍵 フィールドを、新しい証明書の内容で更新する

  3. サーバー側のCA信頼設定は変更不要です


セキュリティ上の注意

  • CA秘密鍵 (keeper_ca) は厳重に保管し、別レコードでKeeperボルトに保存することを推奨します。PAMユーザーに入れるのは署名済みユーザー証明書のみです。

  • 必要に応じて、サーバーの RevokedKeys ファイルで期限前に証明書を失効できます。

  • 高セキュリティ環境では有効期間を短く (例: 24時間または7日) し、証明書発行を自動化してください。

  • -n のプリンシパルはログインユーザー名と 完全一致 させる必要があります。不一致だと証明書が有効でも認証に失敗します。


セッションレコーディング - SSHプロトコル

セッションの録画にアクセスするには、セッションアクティビティ画面を開きます。

このプロトコルでは、ターミナルセッションのグラフィカル表現と、タイミング情報を含む生のテキスト全文の両方が録画されます。録画の詳細および閲覧方法については、セッションのレコーディングと再生をご参照ください。

KeeperAI セッション分析

KeeperAIは、KeeperPAMに組み込まれたAI駆動の脅威検知・対応エンジンであり、環境全体の特権アクセスを保護するために設計されています。振る舞いのパターンやセッションアクティビティをリアルタイムに分析し、異常や高リスク操作の検出に役立ちます。コマンドレベルの可視性が重要なSSH接続では特に有効です。

KeeperAIを有効にするには、PAMマシンレコードのPAM設定画面を開きます。

接続テンプレート

対象システムのPAMレコードは、接続テンプレートとしても構成できます。接続テンプレートは、ホスト名や認証情報を事前に固定せずにセッションを開始できる再利用可能なレコードタイプです。

PAMマシンレコードで接続テンプレートを有効にするには、「共有ユーザーが独自のホストと認証情報を選択できるようにする」を選択します。

接続テンプレートを使う場合、Keeperゲートウェイは指定されたホスト名とポートに到達できる必要があります。ユーザーにはホスト名、ポート、接続用認証情報の入力が求められます。

SSH接続テンプレート

ジャストインタイムワークフロー

ワークフローは、SSHアクセスの申請、承認、付与の進め方をKeeperPAM内で制御する中核機能です。承認の必須化やセッション時間の制限により、監査可能で管理されたジャストインタイム (JIT) のSSHアクセスを運用できます。

PAMマシンでワークフローを有効にするには、PAM設定を開き [ワークフロー] タブを選択します。

SSHセッションには、時間制限付きアクセス、承認、シングルユーザーモード (チェックイン/チェックアウト)、MFAなどを設定できます。


Commander CLIでのターミナル接続

Keeperコマンダー (コマンドラインCLIおよびSDK) から、SSH、Telnet、MySQL、PostgreSQL、SQL Serverなどのターミナルベースのセッションタイプを起動できます。

Commander CLIから接続を開始する例:

Commanderの外のターミナルからは次のように実行します。

最終更新