天天看點

Maven釋出封裝到中央倉庫時候報錯:no default secret key: No secret key

今天因為釋出

swagger-spring-boot-starter

做一個問題的修複,然後碰到了下面這個問題,記錄一下解決過程,幫助後續碰到類似問題的童鞋

*gpg: WARNING: "--no-use-agent" is an obsolete option - it has no effect
gpg: no default secret key: No secret key
gpg: signing failed: No secret key      

我們可以用gpg的指令來看一下目前密鑰的情況:

$ gpg --list-keys
gpg: 正在檢查信任度資料庫
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: 深度:0 有效性:  1 已簽名:  0 信任度:0-,0q,0n,0m,0f,1u
/Users/zhaiyongchao/.gnupg/pubring.kbx
--------------------------------------
pub   rsa2048 2017-12-05 [SC] [已過期:2019-12-05]  
     xxxxxxxxxxxxxxx
uid           [已過期] zhaiyongchao <[email protected]>      

可以看到原來設定的密鑰對已經失效,是以下面就來使用gpg續訂過期的密鑰對:

第一步:進入密鑰編輯

$ gpg --edit-key xxxxxxxxxxxxxxx
gpg (GnuPG) 2.2.3; Copyright (C) 2017 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

私鑰可用。

sec  rsa2048/aaaaaaaaaaaaaaaa
     建立于:2017-12-05  已過期:2019-12-05  可用于:SC  
     信任度:絕對        有效性:已過期
ssb  rsa2048/bbbbbbbbbbbbbbbb
     建立于:2017-12-05  已過期:2019-12-05  可用于:E   
[已過期] (1). zhaiyongchao <[email protected]>      

第二步:延長私鑰與公鑰的過期時間,并儲存修改

gpg> expire
将要變更主鑰的使用期限。
請設定這把密鑰的有效期限。
         0 = 密鑰永不過期
      <n>  = 密鑰在 n 天後過期
      <n>w = 密鑰在 n 周後過期
      <n>m = 密鑰在 n 月後過期
      <n>y = 密鑰在 n 年後過期
密鑰的有效期限是?(0) 0
密鑰永遠不會過期                
以上正确嗎?(y/n)y
                        
sec  rsa2048/aaaaaaaaaaaaaaaa
     建立于:2017-12-05  有效至:永不過期  可用于:SC  
     信任度:絕對        有效性:絕對
ssb  rsa2048/bbbbbbbbbbbbbbbb
     建立于:2017-12-05  已過期:2019-12-05  可用于:E   
[ 絕對 ] (1). zhaiyongchao <[email protected]>

gpg: WARNING: Your encryption subkey expires soon.
gpg: You may want to change its expiration date too.

gpg> key 1
          
sec  rsa2048/aaaaaaaaaaaaaaaa
     建立于:2017-12-05  有效至:永不過期  可用于:SC  
     信任度:絕對        有效性:絕對
ssb* rsa2048/bbbbbbbbbbbbbbbb
     建立于:2017-12-05  已過期:2019-12-05  可用于:E   
[ 絕對 ] (1). zhaiyongchao <[email protected]>

gpg> expire
将要變更子鑰的使用期限。
請設定這把密鑰的有效期限。
         0 = 密鑰永不過期
      <n>  = 密鑰在 n 天後過期
      <n>w = 密鑰在 n 周後過期
      <n>m = 密鑰在 n 月後過期
      <n>y = 密鑰在 n 年後過期
密鑰的有效期限是?(0) 0
密鑰永遠不會過期                
以上正确嗎?(y/n)y
                        
sec  rsa2048/aaaaaaaaaaaaaaaa
     建立于:2017-12-05  有效至:永不過期  可用于:SC  
     信任度:絕對        有效性:絕對
ssb* rsa2048/bbbbbbbbbbbbbbbb
     建立于:2017-12-05  有效至:永不過期  可用于:E   
[ 絕對 ] (1). zhaiyongchao <[email protected]>

gpg> save      

到這裡問題就解決了,可以再嘗試一下mvn deploy來釋出你的内容到中央倉庫吧~