SSH キーでコミットに署名する

署名済みコミットの制限事項

現時点では、SSH キーを使用して検証できるのは、CLI でプッシュされたコミットだけです。

SSH キーを使用すると、自分で生成した SSH キーでコミットに署名できます。詳細については、Git リファレンス ドキュメントで「user.Signingkey」をご確認ください。Bitbucket での認証にすでに SSH キーを使用している場合は、同じキーを使用してコミットに署名できます。アカウントに追加できる署名キーの数に制限はありません。

SSH 署名の検証は Git 2.34 以降で利用可能です。Git のバージョンをアップデートするには、Git の Web サイトを参照してください。

既存の SSH キーの確認

SSH キーをすでに持っているかどうかが不明な場合、既存の SSH キーをローカルで確認できます。

既存の SSH キーがあるかどうかを確認するには、次の手順に従います。

  1. ターミナルで次のコマンドを使用して、自身がアクセス権を持つ SSH キーの一覧を表示します。

    ls -al ~/.ssh
  2. 出力をチェックして SSH キーのペアがあるかどうかを確認します。

新しい SSH キーを生成して追加する

コミットに署名するための新しい SSH キーを生成して追加するには、使用しているオペレーティング システムに応じた手順に従ってください。

SSH キーでコミットに署名する

SSH キーでコミットに署名するには、ターミナル (CLI) を使って以下の手順に従ってください。

  1. キーの形式について Git に指示します。

    git config --global gpg.format ssh
  2. コミットの署名にどのキーを使うかを Git に指示します。これを行うには、下の例の「~/.ssh/id_rsa.pub」を自分の公開キーに置き換えます。

    git config --global user.signingkey ~/.ssh/id_rsa.pub
  3. ローカル ブランチに変更をコミットするときは、次のように git commit コマンドに -S フラグを追加します。

    git commit -S -m "your commit message"
  4. SSH キーのパスフレーズを入力します。

  5. コミットが署名されたことを確認します。

    git log --show-signature -1

    注意: ~/.ssh/ ディレクトリに allowed_signers ファイルを設定する必要があります。詳細については、Git ドキュメントで「allowedSignersFile」をご確認ください。必ず Bitbucket アカウントに関連付けられているメール アドレスを使用してください。下の例をご参照ください。

    echo "bitbucket@example.com $(cat ~/.ssh/id_rsa.pub)" > ~/.ssh/allowed_signers git config --global gpg.ssh.allowedSignersFile ~/.ssh/allowed_signers
  6. 必要に応じて、ssh-agent を再実行することを検討してください。

    ssh-add ~/.ssh/id_rsa.pub eval $(ssh-agent)

署名検証ステータス

ステータス

結果

検証済み

  • 信頼できる作成者がコミットに署名し、署名が検証された。

未認証 ⚠️

  • コミットには SSH 署名があるが、メール アドレスが一致していないため検証が失敗する。

  • コミットの署名に使用されたキーが、Bitbucket のユーザー アカウントにアップロードされていない。

  • コミットに署名するためのキーがサポートされていないか、削除または取り消されたことが原因で無効になっている。

署名なし

  • コミットが、署名済みコミットの実装前に作成されている。

  • コミットが署名されていない。

  • コミットが Bitbucket の Web インターフェイス経由で行われている。

  • コミットはマージ戦略に基づいて行われました。

 

さらにヘルプが必要ですか?

アトラシアン コミュニティをご利用ください。