5

我想签署一个 Ruby gem,并按照http://docs.rubygems.org/read/chapter/21中的说明进行操作,上面 写着“隐藏你的私钥”。但是为了对 gem 进行签名,我们必须在 gemfile 中放入“s.signing_key = '/mnt/floppy/gem-private_key.pem'”。如果生成 gem 后没有删除该行,则每个人都可以在从 RubyGems.org 安装 gem 后看到它。(并不是说他们可以轻松访问我的计算机,但仍然如此。)生成 gem 时,该行会自动从 gemspec 中删除吗?

我通常通过 Bundler 的“rake release”来构建 gem。所以这次我尝试了“gem build mygem.gemspec”。但它导致了一些 OpenSSL 错误。所以我无法检查生成的宝石。

先感谢您。

4

1 回答 1

2

不,signing_key不会删除 gemspec 中的条目。它将是公开的,因此人们将能够看到您的签名密钥的文件位置。

正如您所提到的,这并不意味着人们可以访问它,但如果他们可以访问您的系统,他们会知道它会在哪里。

您可以使用gem unpack命令导出已安装 gem 的内容,从而准确检查 gemspec 中发布的内容以及 gem:

gem unpack GEMNAME

希望这可以帮助!

于 2013-08-26T18:55:24.543 回答