Git - SSHでコミットに署名
Keeperボルトに保存されているSSHキーを使用してGitコミットに署名
最終更新
Keeperボルトに保存されているSSHキーを使用してGitコミットに署名
最終更新
Gitのコミットに署名することは重要です。署名することで、作成者の確認、コミットされた内容の整合性の確保、なりすましの防止、そして否認防止が可能になります。秘密鍵で暗号化署名を使用すると、貢献内容の信頼性とセキュリティへの取り組みが示され、共同作業者間の信頼が構築され、リポジトリが改ざんや悪意のあるコードから保護されます。
この統合により、開発者は Keeperボルト (Keeperシークレットマネージャー経由) で保護された SSHキーを使用してGitコミットに署名できるようになります。
Keeperボルトに保存されているSSHキーを使用してGitコミットに署名します。
安全なDevOpsワークフローのためにディスク上のSSHキーが不要になります。
Windows、MacOS、Linux で動作します。
ソースコードはこちらのGithubページでご参照いただけます。
この統合を利用するには、以下が必要となります。
Keeperシークレットマネージャーへのアクセス (詳細についてはクイックスタートガイドのページをご参照ください)
Keeperアカウントでシークレットマネージャーのアドオンが有効である
シークレットマネージャー強制適用ポリシーが有効になっているロールのメンバーシップ
SSHキーが共有されたKeeperシークレットマネージャーアプリケーション
アプリケーションの作成手順については、クイックスタートガイドをご参照ください。
初期化されたKeeperシークレットマネージャー構成
この統合ではJSON形式の設定のみが受け入れられます
Gitのバージョン2.34.0以降がインストールされている
Keeperウェブボルトまたはデスクトップアプリにログインします。
「Git SSH Keys」などの名前で共有フォルダを作成します。
共有フォルダにSSHキー記録を追加します。
生成します。
この統合では、Keeperシークレットマネージャーを使用してボルトからSSHキーを取得します。
すべてのシステムで、ユーザーのホーム ディレクトリの.config/keeper/ssh-sign.json
にシークレットマネージャー構成ファイルを配置しておきます。この構成が見つからない場合は、バックアップとしてssh-sign.json
がチェックされます。シークレットマネージャーアプリケーションは、SSHキーが保存されている共有フォルダにアクセスできる必要があります。
アプリケーションの設定と構成ファイルの取得に関するヘルプについては、こちらで詳細な手順を参照してください。
シークレットマネージャーを正常に構成した後、Gitがコミットに自動的に署名するように構成できます。必要に応じてローカルまたはグローバルで実行できます。
構成には次の4つの情報が必要となります。
すべてのコミットに署名したいこと
デフォルトのGPG署名ではなくSSH署名を使用すること
この統合の実行可能ファイルの場所 (こちらのページからダウンロードしていただけます)
署名に使用するSSHキーのUID
以下のコマンドを使用して、ローカルGitリポジトリに対して上記を実行します (グローバルに設定するには--global
フラグを追加します)。
Git構成には以下の属性が含まれるようになります。
GitHubがコミットの署名に使用された署名を検証するには、SSHキーの公開キーをGitHubアカウントにアップロードする必要があります。その後、GitHubはこの公開キーを使用して署名を検証し、 UIにverified
タグが表示されます。
公開鍵をアカウントに追加する方法の詳細については、GitHubの公式ドキュメントをご参照ください。
キーの種類を必ず「signing key」 (署名キー) に設定してください。
GitLabがコミットの署名に使用された署名を検証するには、SSHキーの公開キーを GitLabアカウントにアップロードする必要があります。その後、GitLab はこの公開キーを使用して署名を検証し、 UI にverified
タグが表示されます。
公開鍵をアカウントに追加する方法の詳細については、Gitlabの公式ドキュメントをご参照ください。
キーの種類を必ず「signing key」 (署名キー) か「Authentication and signing」 (認証と署名) に設定してください。
Gitは、ターミナルまたはIDEインターフェイスのどちらを使用するかにかかわらず、すべてのコミットに自動的に署名するように設定されています。また、コミット署名に-S
フラグを使用する必要もなくなりました。
ターミナル内でgit show --pretty=raw
を実行することでコミットが署名されたことを確認できます。
コミットに署名してGitHubまたはGitLabにプッシュすると、Git履歴のコミットの横にVerifiedタグが自動的に表示されます。これ以上の作業は必要ありません。
リポジトリが独自のデータセンターに保存されている場合は、コマンドライン上でコミットをローカルで検証できます。これを行うには、承認された署名キーの記録であるallowed_signers
ファイルを作成する必要があります。
通常、このファイルは.ssh/allowed_signers
にグローバルに保存されるか、.git/allowed_signers
のローカルリポジトリに保存されます。このファイルへのパスを.gitconfig
または.git/config
ファイルに追加する必要があります。
allowed_signers
ファイルの各行は、承認された署名キーのプリンシパルである必要があります。以下のように、公開キーに関連付けられたメールアドレスで始まり、スペースで区切る必要があります。
許可された署名者ファイルの形式については、こちらのウェブサイトで詳しく説明されています。
複数のメールアドレスを 1 つの公開キーに関連付けることは構文としては間違っていないものの、推奨されておらず、現在はサポートされていません。
git
履歴を確認するには、以下を行います。
この統合のソースコードはオープンソースであり、GitHubで入手できます。問題がある場合は、こちらのGithubページからチケットを作成してください。