我多年来一直试图将库部署到clojars,而无需使用lein deploy 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>"}}}
我知道用户名和密码是正确的(它们只是从1密码复制而来)。
正在运行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
我已经尝试在0486A2C5
(0617110A
)中指定~/.lein/profiles.clj
和:signing {:gpg-key "<key>"}
,但它没有任何区别。
我还确保在use-agent
中取消注释~/.gnupg/gpg.conf
,并且我还确保在我的计算机上安装了gpg-agent
(brew install gpg-agent
)。< / p>
更新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上使用gpg 1.4.20和gpg-agent 2.0.29(均使用brew安装)。
我错过了什么!?
答案 0 :(得分:3)
我通过从brew(brew uninstall gpg
)卸载gpg然后从gpgtools安装二进制文件来解决这个问题。然后我打开终端并创建了一个从gpg2到gpg的符号链接:
$ ln -s /usr/local/MacGPG2/bin/gpg2 /usr/local/MacGPG2/bin/gpg
然后我将/usr/local/MacGPG2/bin
添加到PATH
中的~/.profile
。运行lein clojars deploy
时,我现在得到一个图形用户界面,我输入密码,然后成功签署发布并发布工件。
答案 1 :(得分:0)
解决此问题的最简单方法是尝试使用带有--batch
标志的gpg解密文件。我想您会发现您的代理已安装但尚未启动,或者可能配置不当。如果你可以让gpg与--batch一起使用,那么deploy命令就可以了。
答案 2 :(得分:0)
我的经验是,在末尾用-SNAPSHOT
命名要部署的jar文件意味着您不必设置公钥/私钥。