Git - SSHでコミットに署名

Keeperボルトに保存されたSSHキーを使用してGitコミットに署名

概説

Gitのコミットに署名することは重要です。署名により、作成者の確認、コミット内容の整合性の確保、なりすましの防止、否認防止が可能になります。秘密鍵による暗号署名は、貢献の真正性とセキュリティへの取り組みを示し、共同作業者間の信頼を築き、リポジトリを改ざんや悪意のあるコードから保護します。

本連携では、開発者がKeeperボルト(Keeperシークレットマネージャー経由)で保護されたSSHキーを使用してGitコミットに署名できます。

機能

  • Keeperボルトに保存されたSSHキーを使用してGitコミットに署名

  • ディスク上のSSHキーが不要なセキュアなDevOpsワークフロー

  • Windows、macOS、Linuxで動作

  • ソースコードはGitHubで公開

要件

本ページでは、git-ssh-signによるGitコミット署名について取り扱います。本連携を利用するには、以下が必要です。

設定

1. シークレットマネージャー構成

  • Keeperウェブボルトまたはデスクトップアプリにログイン

  • 共有フォルダを作成(例: 「Git SSH Keys」)

  • 共有フォルダにSSHキーレコードを追加

  • SSHキーレコードでSSHキーを生成

ボルトからSSHキーを取得するには、ゼロ知識型のKeeperシークレットマネージャーを使用します。

すべてのシステムで、ユーザーのホームディレクトリ内の .config/keeper/ssh-sign.json にシークレットマネージャー構成ファイルを配置します。見つからない場合は、バックアップとして ssh-sign.json も確認します。シークレットマネージャーアプリケーションは、SSHキーが保存されている共有フォルダにアクセスできる必要があります

アプリケーションの設定と構成ファイルの取得については、構成ドキュメントをご参照ください。

2. Git構成

シークレットマネージャーの構成が完了したら、コミットに自動的に署名するようGitを設定できます。ローカルまたはグローバルに設定できます。

構成には以下の4つの情報が必要です。

  1. すべてのコミットに署名する

  2. デフォルトのGPG署名ではなくSSH署名を使用する

  3. 本連携の実行可能ファイルの場所(こちらからダウンロード

  4. 署名に使用するSSHキーのUID

以下のコマンドで、ローカルGitリポジトリに設定できます(グローバルに設定する場合は --global フラグを追加)。

Git構成には以下の属性が含まれます。

3. GitHub / GitLabにキーを追加

GitHubのセットアップ

GitHubでコミット署名を検証するには、SSHキーの公開鍵をGitHubアカウントにアップロードする必要があります。GitHubはこの公開鍵で署名を検証し、UIに verified タグが表示されます。

公開鍵をアカウントに追加する手順の詳細は、GitHubの公式ドキュメントをご参照ください。

GitLabのセットアップ

GitLabでコミット署名を検証するには、SSHキーの公開鍵をGitLabアカウントにアップロードする必要があります。GitLabはこの公開鍵で署名を検証し、UIに verified タグが表示されます。

公開鍵をアカウントに追加する手順の詳細は、GitLabの公式ドキュメントをご参照ください。

署名の検証

ターミナルでもIDEでも、すべてのコミットに自動的に署名されます。コミット時の -S フラグも不要です。

ターミナルで git show --pretty=raw を実行すると、コミットが署名されていることを確認できます。

GitHubとGitLab

コミットに署名してGitHubまたはGitLabにプッシュすると、Git履歴のコミット横に verified タグが自動的に表示されます。追加の作業は不要です。

ローカル検証

リポジトリが自社データセンターにある場合、コマンドラインでコミットをローカル検証できます。そのためには、承認済み署名キーを登録する allowed_signers ファイルを作成します。

通常、このファイルはホームディレクトリの .ssh/allowed_signers に保存するか、リポジトリ内の .git/allowed_signers に保存します。ファイルへのパスを .gitconfig または .git/config に追加します。

allowed_signers ファイルの各行は、承認済み署名キーのプリンシパルです。公開鍵に関連付けられたメールアドレスから始め、スペースで区切ります。以下に例を示します。

pencil-line

allowed_signers ファイルの形式の詳細はこちらをご参照ください。

1つの公開鍵に複数のメールアドレスを関連付ける構文は有効ですが、推奨されず、現時点では利用できません。

Git履歴を検証するには、以下を実行します。

ソース

本連携のソースコードはオープンソースで、GitHubで公開されています。問題はこちらから報告できます。

類似連携

Keeper SSH Agentを使用してGit認証とコミット署名を行うこともできます。

最終更新