Gitとの統合

Git認証とコミット署名のためのKeeper SSH エージェント統合

KeeperのSSHエージェントは、Gitとの認証およびコミット署名にシームレスに統合できます。秘密鍵をデバイス上に保存せず、Keeperボルト内で安全に管理することで、機密性の高い鍵のローカルでの漏洩を防ぎ、セキュリティを強化します。

本ページでは、GitHubで使用する認証用キーと署名用キーをそれぞれ作成・設定し、それらをすべてKeeperによって安全に管理する方法を取り扱います。認証と署名で異なる鍵を使用することで、役割を明確に分離し、セキュリティ体制をさらに強化できます。

要件

機能

GitHub認証

以下はKeeperを使用してGitHubで認証する手順です。

1

Keeperレコードを作成する

  • SSHキータイプやPAMユーザータイプなどのレコードを作成します。

  • 強力なパスワードを生成します。

2

SSHキーを生成する

以下のように、Keeperで生成したパスワードを使用して、ターミナルでSSHキーを生成します。

ssh-keygen -t ecdsa -b 521 -C "craig@keeperdemo.io"

Enter passphrase (empty for no passphrase): *********
Enter same passphrase again: *********

これにより、公開キーと秘密キーがローカルマシン上に作成されます。

/Users/craig/.ssh/id_ecdsa
/Users/craig/.ssh/id_ecdsa.pub
3

レコードにキーを追加する

手順2で生成した公開キーと秘密キーの内容を、Keeperレコードに追加します。公開キーと秘密キーをそれぞれコピーして、Keeperの該当フィールドに貼り付けます。

Github認証用Keeper SSHキー
4

Githubにキーを追加する

  • GitHub.comで、[Settings] > [SSH and GPG keys] > [New SSH Key] に進み、「Key type」で「Authentication Key」を選択します。

  • タイトルを入力し、手順2で作成した id_ecdsa.pub の公開キーの内容を貼り付けます。

  • キーを保存します。

5

SSHエージェントにキーを追加する

Keeperデスクトップアプリを開き、[設定] > [開発者] > [SSHエージェント] > [編集] の順に進み、手順3で作成した「Github Auth key」を使用可能なキーの一覧から選択します。

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

Keeper SSHエージェントからGithub認証キーを選択する

6

ローカルキーを削除する

現時点で、秘密キーと公開キーの両方がKeeperによって安全に保管・管理されているため、ローカルキーは削除しておきましょう。この場合、公開キーと秘密キーの両方を削除して問題ありません。

rm /Users/craig/.ssh/id_ecdsa
rm /Users/craig/.ssh/id_ecdsa.pub
7

Githubでの認証

任意のリポジトリ内でターミナルを開き、GitHub に対して認証済みリクエストを実行します。

git pull
8

これにより、Keeper ダイアログがすぐに起動し、Github 認証キーを承認するようになります。

KeeperでGithub認証キーの使用を承認する

[承認] をクリックすると、Keeper に保存されているキーを使用してGithubで認証が行われます。

セットアップが完了しました。

コミットの署名

以下は、Keeperを使って GitHubコミットに署名するための専用キーを作成するて手順です。

1

Keeperレコードを作成する

  • SSHキータイプやPAMユーザータイプなどのレコードを作成します。

  • 強力なパスワードを生成します。

2

SSHキーを生成する

以下のように、Keeperで生成したパスワードを使用して、ターミナルでSSHキーを生成します。

ssh-keygen -t ecdsa -b 521 -C "craig@keeperdemo.io"

Enter passphrase (empty for no passphrase): *********
Enter same passphrase again: *********

これにより、公開キーと秘密キーがローカルマシン上に作成されます。

/Users/craig/.ssh/id_ecdsa
/Users/craig/.ssh/id_ecdsa.pub
3

レコードにキーを追加する

手順2で生成した公開キーと秘密キーの内容を、Keeperレコードに追加します。公開キーと秘密キーをそれぞれコピーして、Keeperの該当フィールドに貼り付けます。

Github署名用Keeper SSHキー
4

Githubにキーを追加する

  • GitHub.comで、[Settings] > [SSH and GPG keys] > [New SSH Key] に進み、「Key type」で「Signing Key」を選択します。

  • タイトルを入力し、手順2で作成した公開キーの内容を貼り付けます。

  • キーを保存します。

5

SSHエージェントにキーを追加する

Keeperデスクトップアプリを開き、[設定] > [開発者] > [SSHエージェント] > [編集] の順に進み、手順3で作成したGithub署名キーを使用可能なキーの一覧から選択します。

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

6

ローカル秘密キーを削除する

Keeperで秘密キーが安全に管理されているため、ローカルの秘密キーのみ削除します。公開キー (xxx.pub) は署名時に識別に使用されるため、保持します。

rm /Users/craig/.ssh/id_ecdsa

公開キーのファイル名をより分かりやすいものに変更します。

cd ~/.ssh
mv id_ecdsa.pub git_signing_key.pub

公開キーを識別できるよう、ユーザー名と公開キーの内容を ~/.ssh/allowed_signers というファイルに記載します。以下の形式で入力します。

craig@keeperdemo.io <git_signing_key.pub の内容>

この例では、ファイルの内容は以下のようになります。

craig@keeperdemo.io ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAD2VeqOZ9bk2ABF6AZ63qJY2sDfz0kJJPfDW0zpres0/p1YGGJBYtyU4l3nIgwx0K2iEKFty429N2NNfIMBsqI+ngDq3/VGaexmZxymJnCzOl9+J1IQr6u05jZHLsk1FOALjOSm9jv4bF/DyK4oh5shKMlTHAeDWPfqMd3JwncSYBzKfA== craig@keeperdemo.io
7

Git署名を有効にする

ターミナルで以下のコマンドを実行し、GitHubにこの新しい署名キーと allowed_signers ファイルを使用するよう指示します。

git config --global user.signingkey ~/.ssh/git_signing_key.pub
git config --global gpg.format ssh
git config --global commit.gpgsign true
git config --global gpg.ssh.allowedSignersFile ~/.ssh/allowed_signers

この操作により、~/.gitconfig に複数の行が追加され、設定がグローバルに適用されます。グローバルではなく、個別のリポジトリごとに設定を行うことも可能です。

8

署名の検証

リポジトリから、空のコミットを実行して署名プロセスをテストしてみましょう。

git commit --allow-empty -m "Test commit with SSH signing"

これにより、キーを承認するためのKeeperダイアログがすぐに起動します。

コミットに署名が適用されたことを確認するには、以下のコマンドを実行します。

git log --show-signature

以下のような応答が表示されます。

commit 52319faf2e7c02a (HEAD -> main)
Good "git" signature for craig@keeperdemo.io with ECDSA key SHA256:xxxxxxx
Author: Craig Lurey <craig@keeperdemo.io>
Date:   Fri Jan 17 20:18:19 2025 -0800

    Test commit with SSH signing

セットアップが完了しました。

最終更新