Bitbucket Cloud で SSH キーを使用してコミットに署名できるようになりました。
SSH キーを使用してコミットに署名できるようになりました。- アトラシアンのワークライフ
署名付きコミットは、開発者がSSH キーを使用してコントリビューションの信頼性を確認できるようにする、重要な保護レイヤーを提供します。
本ページでは SSH キーを使用した署名付きコミットの設定手順、実際に使用してみた画面などを紹介します。
各人の SSH キーを使用してコミットに署名することができます。下図のように Bitbucket Cloud の Commits 画面で検証結果を確認することが可能です。
SSH キーを使用してコミットに署名する主な理由は、コードの信頼性とセキュリティを向上させるためです。この手法を利用することには、次のような利点があります。
注意
v2.34 以降の git で本機能を使用することができるようです。
古い git を使用している場合は新しい git へ更新してお試しください。
SSH キーがまだあるかどうかわからない場合は、ローカルで既存の SSH キーを確認できます。
既存のSSHキーがあるかどうかを確認するには:
既にある SSH キーを使用してコミットに署名する場合、次章へ進んでください。
コミットに署名するための新しい SSH キーを生成して追加するには、使用するオペレーティング システムに応じた手順に従います。
SSH キーを使用してコミットに署名するには、ターミナル (CLI) を使用して次の手順に従います。
git config --global gpg.format ssh
git config --global user.signingkey ~/.ssh/id_rsa.pub
私の場合は ~/.ssh/bitbucket/id_ed25519.pub を公開鍵として使用しているので下記コマンドを使用します。
git config --global user.signingkey ~/.ssh/bitbucket/id_ed25519.pub
git commit -S -m "your commit message"
-S を毎回つけるのが面倒な場合は、後述の "5. git commit で常に署名するように設定する" を確認してください。
git log --show-signature -1表示例です。
echo "bitbucket@example.com $(cat ~/.ssh/id_rsa.pub)" > ~/.ssh/allowed_signers git config --global gpg.ssh.allowedSignersFile ~/.ssh/allowed_signers
ssh-add ~/.ssh/id_rsa.pub eval $(ssh-agent)
kinoshita@PC-FooBoo:~$ cat .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
git commit 時に “-S“ を付けて実施することは面倒です。一部のツールではこれを補助する仕組みがある様子ですが、常に署名してくれる方が良い場合もありそうです。
署名対象のディレクトリへ移動後、下記コマンドを実行します。
git config commit.gpgsign true
もしくは全てを対象に有効化する場合は ‘--global’ を付けて下記コマンドを実行します。
git config --global commit.gpgsign true
後者のコマンドを実行後の私の .gitconfig ファイル例です。(メールアドレスは **** で変更表記しています)
kinoshita@PC-FooBoo:~$ cat .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 |
|
本ページの情報は、特記無い限り下記 MIT ライセンスで提供されます。
2025-03-19 | - | 新規作成 |