Bitbucket で、SSH キーを使用してコミットに署名できるようになりました。
SSH キーを使用してコミットに署名できるようになりました。- アトラシアンのワークライフ
署名付きコミットは、開発者がSSH キーを使用してコントリビューションの信頼性を確認できるようにする重要な保護レイヤーを提供します。
本ページでは、Bitbucket で SSH キーを使用した署名付きコミットの設定手順、実際に使用してみた画面などを紹介します。
署名されたコミットは、下図のように Bitbucket の Commits 画面で Verified という表示で確認できます。
またリポジトリ設定により、コミット署名を強制化することもできます。
これを有効化すると署名のないコミットを登録できなくなります。

注意
v2.34 以降の git で本機能を使用することができるようです。
古い git を使用している場合は新しい git へ更新してお試しください。
SSH キーがまだあるかどうかわからない場合は、ローカルで既存の SSH キーを確認できます。
既存のSSHキーがあるかどうかを確認するには:
既に登録済みの SSH キーを使用してコミットに署名する場合、次章へ進んでください。
コミットに署名するための新しい SSH キーを生成して追加するには、使用するオペレーティング システムに応じた手順に従います。
または私の記事(How to use SSH key.html)を参照して SSH キーを作成および登録を行います。
NOTE
Bitbucket は、認証キー(Authentication key)と署名キー(Signing key)の違いありません。
Github は、ホームページ上で登録時に 'Key type' として選択します。初期状態は認証キー(Authentication key)になっているので、署名キーを登録する場合は変更する必要があります。
SSH キーを使用してコミットに署名するには、ターミナル (CLI) を使用して次の手順に従います。
下記説明は、リポジトリ毎に設定する例を説明します。全ての git リポジトリを対象に設定する場合は "--global" を付与して実施します。
cd ****
git config gpg.format ssh
私の場合は ~/.ssh/bitbucket/id_ed25519.pub を公開鍵として使用しているので下記コマンドを使用します。
git config user.signingkey ~/.ssh/bitbucket/id_ed25519.pub
git commit -S -m "your commit message"
-S を毎回つけるのが面倒な場合は、後述の "5. git commit で常に署名するように設定する" を確認してください。
[任意] ディレクトリにファイル
allowedSignersFile をセットアップ
allowedSignersFile は、Git で SSH
署名を使用したコミットやタグの検証を行う際に、信頼できる SSH 公開鍵をリストとして定義するファイルです。
ファイル名、ファイル保存場所 はなんでも良いのですが、ここでは対象リポジトリに config というフォルダを作成して
config/allowed_signers
というファイルで登録してみます。このファイルへ対象リポジトリへコミットするユーザーの (1)メールアドレス、(2)公開鍵、を
allowedSignersFile へ登録します。
登録手順例を以下に記載します。bitbucket@example.com
および id_ed25519.pub
を登録するユーザーのメールアドレス・公開鍵、へ置き換えて登録します。
echo "example@domain.com $(cat ~/.ssh/bitbucket/id_ed25519.pub)" > config/allowed_signers git config gpg.ssh.allowedSignersFile config/allowed_signersつまり、config/allowed_signers に以下の形式で信頼する公開鍵を登録することを意味します。
「ユーザーのメールアドレス SSH公開鍵」
example@domain.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAxxxxxx... foo.boo@domain.com ssh-ed25519 ABCDE4NzaC1lZDI112345678xxxxxx...そして .git/config には allowedSignersFile のパスが記載されます。
"-1" は最新コミットから1つを表示します。
"-3" は最新コミットから3つを表示します。
git log --show-signature -1表示例です。

項目の表示順序はいろいろなので気にしないでください。
[".git/config"]
[core]
省略
[remote "origin"]
省略
[branch "main"]
省略
[user]
signingkey = /home/hidetoshi/.ssh/bitbucket/id_ed25519.pub
[gpg "ssh"]
allowedSignersFile = config/allowed_signers
[gpg]
format = ssh
[commit]
gpgsign = true
[user]
name = kinoshita hidetoshi
email = ********@********.com
signingkey = /home/hidetoshi/.ssh/bitbucket/id_ed25519.pub
[gpg "ssh"]
allowedSignersFile = /home/hidetoshi/.ssh/allowed_signers
[gpg]
format = ssh
[commit]
gpgsign = true
git commit 時に “-S“ を付けて実施することは面倒です。一部のツールではこれを補助する仕組みがある様子ですが、常に署名してくれる方が良い場合もありそうです。
署名対象のディレクトリへ移動後、下記コマンドを実行します。
git config commit.gpgsign true
もしくは全てを対象に有効化する場合は ‘--global’ を付けて下記コマンドを実行します。
git config --global commit.gpgsign true
後者のコマンドを実行後の私の .gitconfig ファイル例です。(メールアドレスは **** で変更表記しています)
[user]
name = kinoshita hidetoshi
email = ********@********.com
signingkey = /home/kinoshita/.ssh/bitbucket/id_ed25519.pub
[gpg "ssh"]
allowedSignersFile = /home/kinoshita/.ssh/allowed_signers
[gpg]
format = ssh
[commit]
gpgsign = true
以上の設定により git commit に -S を付けることなくコミットに対して常に署名するようになります。
以上の設定と署名付きコミットを行ったのち、Bitbucket Cloud へプッシュした Commits 画面を紹介します。「✔」 の表示が追加されました。

「✔」 部分をクリックすると以下の表示を確認できました。

| ステータス | 結果 |
|---|---|
| Verified |
|
| Unverified |
|
| No Signature |
|
いろいろ記載しましたが、Bitbucket でコミット署名の設定手順を要約すると以下のような感じになります。
$ git config gpg.format ssh
$ git config user.signingkey ~/.ssh/bitbucket/id_ed25519.pub
allowed_sighners ファイルの所在およびファイル名は任意です。
$ echo bitbucket@example.com $(cat ~/.ssh/bitbucket/id_ed25519.pub) > config/allowed_signers $ git config gpg.ssh.allowedSignersFile config/allowed_signers
$ git config commit.gpgsign true
1-2 は、既に作成および登録済みの認証鍵を使用する場合は実施不要。
3-5 は、設定を行うリポジトリ内で行います。リポジトリ毎に異なる設定を行えますので、例えば Bitbucket と GitHub 両方を使用している、という人でも安心です。
全部共通で良い、という場合は 3-5 のコマンド実行時に --global オプションを追加します。
逆に --global オプションで設定を行ったうえで動作条件が異なるリポジトリのみ個別変更、という方法もできそうです。
注意
下記2つのメールアドレスが一致している必要があります。
本ページの情報は、特記無い限り下記 MIT ライセンスで提供されます。
| 2026-02-13 | - | 説明をリファクタ、ページデザイン調整、他 |
| 2025-05-30 | - | 「7._つまり、設定手順を簡単に説明すると...」を追加 |
| 2025-03-19 | - | 新規作成 |