我想使用 cygwin 中的 gpg-agent,但在 cygwin 上安装 gpg 无法提供此功能,而且 google 也没有太多关于此的最新信息。是否可以在 cygwin 下使用 gpg-agent(使用类似 keychain 的东西),或者我可以将“本机”windows 代理与 cygwin 的 gpg 一起使用吗?
答案1
不幸的是,没有(或者截至 2016 年 3 月还没有)。正如 Cygwin 软件包维护人员为 GnuPG 编写的以下帖子所暗示的那样,gpg-agent 仅在 GnuPG 2 及更新版本中可用,但 Cygwin 随 GnuPG 1.4 一起打包。
2015 年 4 月 9 日 12:31,Andrew Schulman 写道:
那么,为什么 Cygwin 没有 gpg-agent 呢?希望将来有一天能有吗?
来自:亚当·丁伍迪
我怀疑只是因为没有人打包过,而必须有人做这项工作才能使它可用。我怀疑没有人会反对你提交一份打包意向书https://cygwin.com/setup.html。
2015 年 9 月 3 日星期四下午 03:20:45,Andrew Schulman 写道:
如果这是唯一的原因,我当然会考虑打包它。不过我想先听听 gnupg 维护者 Marco 的意见,看看是否还有其他原因。
来自:Marco Atzeri
据我所知,gpg-agent 属于 GnuPG > 2.0,而我们只有经典的 gnupg-1.4.19
如果我没记错的话,GnuPG > 2.0 需要 cygwin 上不存在的内存保护功能。但我可能错了。
问候 Marco
答案2
更新(2018-10-20)
以下信息现已过时,因为截至目前,当前的 Cygwingnupg2软件包版本为
2.2.10-1
以及最新的gpg4win(3.1.3)位于2.2.10
。
否,目前没有原生 Cygwin 包GnuPG 2+。请向他们的电子邮件列表提交投诉。唯一的方法是遵循我的安装说明并软链接新代理。请小心,因为有多个文件具有相似的名称,因为您不想破坏包管理器和其他应用程序使用的本机/原始 gpg。
$ ls -1 /cygdrive/c/Program\ Files\ \(x86\)/GnuPG/bin/gpg*
gpg.exe'*
gpg-agent.exe'*
gpgconf.exe'*
gpg-connect-agent.exe'*
gpgme-w32spawn.exe'*
gpg-preset-passphrase.exe'*
gpgsm.exe'*
gpgtar.exe'*
gpgv.exe'*
gpg-wks-client.exe'*
$ ls -1 /usr/bin/gpg*
gpg.exe*
gpgsplit.exe*
gpgv.exe*
gpg-zip*
链接的最低要求是:
$ ln -s /cygdrive/c/Program\ Files\ \(x86\)/GnuPG/bin/gpg.exe /usr/bin/gpg2
$ ln -s /cygdrive/c/Program\ Files\ \(x86\)/GnuPG/bin/gpg-agent.exe /usr/bin/gpg-agent
答案3
最好的解决方案是切换到摩巴Xterm!
MobaXterm 有一个类似钥匙串的实用程序,可以像 mRemote-ng 一样保存 ssh 会话,但它是 Windows 的原生 Unix 终端(如 Cygwin)。
答案4
如果 Cygwin 由于内存管理限制而无法提供 GnuPG > 2.0,您可以尝试查看新的适用于 Linux 的 Microsoft Windows 子系统 (WSL)到在 Windows 上的 Ubuntu 上运行 Bash。
在 Bash shell 中(通过 WSL 在 Windows 10 上的 Ubuntu 上运行),您可以访问 Canonical 软件包存储库,并可以快速安装 GnuPG 之类的东西:
apt-get install gnupg