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

概説
Gitのコミットに署名することは重要です。署名により、作成者の確認、コミット内容の整合性の確保、なりすましの防止、否認防止が可能になります。秘密鍵による暗号署名は、貢献の真正性とセキュリティへの取り組みを示し、共同作業者間の信頼を築き、リポジトリを改ざんや悪意のあるコードから保護します。
本連携では、開発者がKeeperボルト(Keeperシークレットマネージャー経由)で保護されたSSHキーを使用してGitコミットに署名できます。
機能
Keeperボルトに保存されたSSHキーを使用してGitコミットに署名
ディスク上のSSHキーが不要なセキュアなDevOpsワークフロー
Windows、macOS、Linuxで動作
ソースコードはGitHubで公開
要件
本ページでは、git-ssh-signによるGitコミット署名について取り扱います。本連携を利用するには、以下が必要です。
Keeperシークレットマネージャーへのアクセス(クイックスタートガイドをご参照ください)
Keeperのサブスクリプションでシークレットマネージャーアドオンが有効になっていること
シークレットマネージャーポリシーが有効なロールに所属していること
SSHキーが共有されているKeeperシークレットマネージャーアプリケーション
アプリケーションの作成手順については、クイックスタートガイドをご参照ください
初期化済みのKeeperシークレットマネージャー構成
本連携ではJSON形式の構成のみ使用可能
Git 2.34.0以降がインストールされていること
設定
1. シークレットマネージャー構成
Keeperウェブボルトまたはデスクトップアプリにログイン
共有フォルダを作成(例: 「Git SSH Keys」)
共有フォルダにSSHキーレコードを追加
SSHキーレコードでSSHキーを生成
ボルトからSSHキーを取得するには、ゼロ知識型のKeeperシークレットマネージャーを使用します。
すべてのシステムで、ユーザーのホームディレクトリ内の .config/keeper/ssh-sign.json にシークレットマネージャー構成ファイルを配置します。見つからない場合は、バックアップとして ssh-sign.json も確認します。シークレットマネージャーアプリケーションは、SSHキーが保存されている共有フォルダにアクセスできる必要があります。
アプリケーションの設定と構成ファイルの取得については、構成ドキュメントをご参照ください。
2. Git構成
シークレットマネージャーの構成が完了したら、コミットに自動的に署名するようGitを設定できます。ローカルまたはグローバルに設定できます。
構成には以下の4つの情報が必要です。
すべてのコミットに署名する
デフォルトのGPG署名ではなくSSH署名を使用する
本連携の実行可能ファイルの場所(こちらからダウンロード)
署名に使用するSSHキーのUID
以下のコマンドで、ローカルGitリポジトリに設定できます(グローバルに設定する場合は --global フラグを追加)。
Git構成には以下の属性が含まれます。
3. GitHub / GitLabにキーを追加
GitHubのセットアップ
GitHubでコミット署名を検証するには、SSHキーの公開鍵をGitHubアカウントにアップロードする必要があります。GitHubはこの公開鍵で署名を検証し、UIに verified タグが表示されます。
公開鍵をアカウントに追加する手順の詳細は、GitHubの公式ドキュメントをご参照ください。
キーの種類は必ず「signing key」(署名キー)に設定してください。
GitLabのセットアップ
GitLabでコミット署名を検証するには、SSHキーの公開鍵をGitLabアカウントにアップロードする必要があります。GitLabはこの公開鍵で署名を検証し、UIに verified タグが表示されます。
公開鍵をアカウントに追加する手順の詳細は、GitLabの公式ドキュメントをご参照ください。
キーの種類は必ず「signing key」(署名キー)または「Authentication and signing」(認証と署名)に設定してください。
署名の検証
ターミナルでも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 ファイルの各行は、承認済み署名キーのプリンシパルです。公開鍵に関連付けられたメールアドレスから始め、スペースで区切ります。以下に例を示します。
allowed_signers ファイルの形式の詳細はこちらをご参照ください。
1つの公開鍵に複数のメールアドレスを関連付ける構文は有効ですが、推奨されず、現時点では利用できません。
Git履歴を検証するには、以下を実行します。
ソース
本連携のソースコードはオープンソースで、GitHubで公開されています。問題はこちらから報告できます。
類似連携
Keeper SSH Agentを使用してGit認証とコミット署名を行うこともできます。
Keeper SSH Agentについて
Gitとの統合について
最終更新

