我已经尝试很久通过lein deploy clojars
命令将一个库部署到Clojars,但是不想指定用户名和密码。但最终遇到以下错误信息:
gpg: gpg-agent is not available in this session
gpg: can't query passphrase in batch mode
gpg: Invalid passphrase; please try again ...
gpg: can't query passphrase in batch mode
gpg: Invalid passphrase; please try again ...
gpg: can't query passphrase in batch mode
gpg: decryption failed: secret key not available
Could not decrypt credentials from /Users/johan/.lein/credentials.clj.gpg
nil
See `lein help gpg` for how to install gpg.
No credentials found for clojars
See `lein help deploying` for how to configure credentials to avoid prompts.
我的
~./lein/credentials.clj.gpg
文件看起来像这样(未加密):{ #"https://clojars.org/repo"
{:username "<username>" :password "<password>"}}}
我知道用户名和密码是正确的(它们只是从1password复制而来)。
运行
gpg --list-keys
会给我以下结果:/Users/myname/.gnupg/pubring.gpg
-------------------------------
pub 2048R/0486A2C5 2010-10-12
uid My Name <myname@somemail.com>
sub 2048R/0617110A 2010-10-12
我尝试在
~/.lein/profiles.clj
中指定0486A2C5
和0617110A
(:signing {:gpg-key "<key>"}
),但没有任何区别。我还确保了在
~/.gnupg/gpg.conf
中取消注释了use-agent
,并且我也确保在我的机器上安装了gpg-agent
(brew install gpg-agent
)。
更新1
运行gpg --list-secret-keys
会给我以下输出:/Users/myname/.gnupg/secring.gpg
-------------------------------
sec 2048R/0486A2C5 2010-10-12
uid My Name <myname@somemail.com>
ssb 2048R/0617110A 2010-10-12
运行gpg --quiet --batch --decrypt ~/.lein/credentials.clj.gpg
会提示我输入密码,然后返回解密的结果。
更新2
我在Mac OS X El Capitan上使用brew安装的gpg 1.4.20和gpg-agent 2.0.29。
我漏掉了什么吗?
gpg --list-keys
打印公钥,解密需要私钥。gpg --list-secret-keys
的输出是什么? - Jens Erat