- 投稿日:
確認環境
Env | Ver |
---|---|
Ubuntu | 20.04.4 LTS |
gpg | 2.2.19 |
手順
gpg -k
で削除したいキーの下記XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
相当の部分をコピペ
pub rsa3072 2021-01-17 [SC]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
uid [ 不明 ] Foo Bar <foobar@example.com>
sub rsa3072 2021-01-17 [E]
gpg --delete-secret-keys XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
で秘密鍵を消すgpg --delete-keys XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
で公開鍵を消すgpg -k
で削除出来ているか確認
- 投稿日:
VisualStudio 2022でGitの署名コミットをしようとしたらエラーを吐いたのでその対処法
前提条件
- Gpg4winをインストールしている
- cmdから署名コミットができる
- 最低限以下の設定がある
[user]
name = your-name
email = your@example.com
signingkey = XXXXXXXXXXXXX
[commit]
gpgsign = true
確認環境
下記のgpgはGpg4winにバンドルされているものです
Env | Ver |
---|---|
Visual Studio Community 2022 (64 bit) | Version 17.5.1 |
Git | 2.40.0.windows.1 |
gpg | 2.3.4 |
エラー内容
このエラーをコピーしようとするとVisualStudioがクラッシュしたので頑張って写経しました
Git failed with a fatal error.
Git failed with a fatal error.
hint: core.useBuiltinFSMonitor=true is deprecated; please set core.fsmonitor=ture instead
hint: Disable this message with "git config advice.useBuiltinFSMonitorConfig false"
error: cannot spawn gpg: No such file or directory
error: gpg failed wqrite commit object
対処方法
GitのGlobal Config設定変更で対処する
- 次のコマンドを流す
git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
gpg.exe
のパスは環境に応じて書き換えること
参考までにWindowsのGlobal Configは%USERPROFILE%.gitconfig
にあるのでファイルを編集して対応する場合は、下記内容を追記することで対応できる
[gpg]
program = "C:\\Program Files (x86)\\GnuPG\\bin\\gpg.exe"
- 投稿日:
keychainというパスフレーズを記憶させるツールを使って記憶させます
shellの初回起動時にパスフレーズを入力させられ、以降多分再起動するまで記憶しておいてくれる気がします
確認環境
Env | Ver |
---|---|
keychain | 2.8.5 |
Ubuntu | 20.04.5 LTS |
手順
- keychainのインストール
sudo apt install keychain
- keychainの設定
.zshrc
とかに次の行を追加keychain -q --nogui --agents gpg --quick <GPGのkeyid>
- GPGのkeyidは
gpg --list-secret-keys --keyid-format=long
で取得可能
- GPGのkeyidは
トラブルシュート
ssh と gpg 両方記憶させたい
こんな感じで書くと行ける。shell起動時にSSHのPW -> GPGのPWの順で入力ダイアログが出てくる
keychain -q --nogui --agents ssh,gpg --quick $HOME/.ssh/id_ed25519 <GPGのkeyid>
GPG のキーが見つからないエラーが出る
- Warning: can't find DEADBEEF; skipping
上記が出た場合
~/.gnupg/gpg.conf
に対して以下の記述をすることで改善する可能性がある(この対策は不完全かもしれない
keyid-format LONG
- 投稿日:
使い方の簡単な参考
確認環境
Windowsで確認しているが、 Linuxでも多分同じ
Env | Ver |
---|---|
gpg (GnuPG) | 2.2.27 |
基本の使い方
- 鍵の一覧を確認する
gpg --list-keys
--with-keygrip
をつけるとKeyGrip(鍵の識別子?)も見れる
- 鍵を編集する
gpg --edit-key <Name>
<Name>
は鍵の名前か鍵IDを指定できる--expert
をつけると高度な編集が可能になる- 対話シェルが起動するので
help
を叩いてやりたい操作をする - 副鍵に対する操作は事前に
key <ID>
を指定する必要がある- 無指定で
delkey
とかするとエラーになる
- 無指定で
- 鍵をインポートする
gpg --import <key-file>