SSHキーを生成する
以下のように、Keeperで生成したパスワードを使用して、ターミナルでSSHキーを生成します。
コピー ssh-keygen -t ecdsa -b 521 -C "craig@keeperdemo.io"
Enter passphrase (empty for no passphrase): *********
Enter same passphrase again: *********
これにより、公開キーと秘密キーがローカルマシン上に作成されます。
コピー /Users/craig/.ssh/id_ecdsa
/Users/craig/.ssh/id_ecdsa.pub
レコードにキーを追加する
手順2で生成した公開キーと秘密キーの内容を、Keeperレコードに追加します。公開キーと秘密キーをそれぞれコピーして、Keeperの該当フィールドに貼り付けます。
SSHエージェントにキーを追加する
Keeperデスクトップアプリを開き、[設定] > [開発者] > [SSHエージェント] > [編集] の順に進み、手順3で作成したGithub署名キーを使用可能なキーの一覧から選択します。
[更新] をクリックして設定を保存します。
ローカル秘密キーを削除する
Keeperで秘密キーが安全に管理されているため、ローカルの秘密キーのみ削除します。公開キー (xxx.pub) は署名時に識別に使用されるため、保持します。
コピー rm /Users/craig/.ssh/id_ecdsa
公開キーのファイル名をより分かりやすいものに変更します。
コピー cd ~/.ssh
mv id_ecdsa.pub git_signing_key.pub
公開キーを識別できるよう、ユーザー名と公開キーの内容を ~/.ssh/allowed_signers
というファイルに記載します。以下の形式で入力します。
コピー craig@keeperdemo.io <git_signing_key.pub の内容>
この例では、ファイルの内容は以下のようになります。
コピー craig@keeperdemo.io ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAD2VeqOZ9bk2ABF6AZ63qJY2sDfz0kJJPfDW0zpres0/p1YGGJBYtyU4l3nIgwx0K2iEKFty429N2NNfIMBsqI+ngDq3/VGaexmZxymJnCzOl9+J1IQr6u05jZHLsk1FOALjOSm9jv4bF/DyK4oh5shKMlTHAeDWPfqMd3JwncSYBzKfA== craig@keeperdemo.io
Git署名を有効にする
ターミナルで以下のコマンドを実行し、GitHubにこの新しい署名キーと allowed_signers
ファイルを使用するよう指示します。
コピー git config --global user.signingkey ~/.ssh/git_signing_key.pub
git config --global gpg.format ssh
git config --global commit.gpgsign true
git config --global gpg.ssh.allowedSignersFile ~/.ssh/allowed_signers
この操作により、~/.gitconfig
に複数の行が追加され、設定がグローバルに適用されます。グローバルではなく、個別のリポジトリごとに設定を行うことも可能です。
署名の検証
リポジトリから、空のコミットを実行して署名プロセスをテストしてみましょう。
コピー git commit --allow-empty -m "Test commit with SSH signing"
これにより、キーを承認するためのKeeperダイアログがすぐに起動します。
コミットに署名が適用されたことを確認するには、以下のコマンドを実行します。
コピー git log --show-signature
以下のような応答が表示されます。
コピー commit 52319faf2e7c02a (HEAD -> main)
Good "git" signature for craig@keeperdemo.io with ECDSA key SHA256:xxxxxxx
Author: Craig Lurey <craig@keeperdemo.io>
Date: Fri Jan 17 20:18:19 2025 -0800
Test commit with SSH signing
セットアップが完了しました。