如何使用 Hadley 的安全包正确设置密钥

How to correctly setup keys with Hadley's secure package

提问人:Hack-R 提问时间:9/16/2016 最后编辑:Hack-R 更新时间:10/21/2016 访问量:423

问:

我想使用 GitHub 的 Hadley Wickam 包。secure

示例用法没有明确说明如何创建密钥以及在哪里存储它们,我搞砸了一些东西(可能不止一件事)。

我安装了软件包

# install.packages("devtools")
devtools::install_github("s-u/PKI") # needed for bug fixes not currently on CRAN
devtools::install_github("hadley/secure")

设置文件夹:vault

dir.create("vault")

然后下一步是添加用户/密钥:

secure::add_user("hackr", local_key())

当然,如果我真的按原样运行最后一行,它说

错误:没有键匹配id_rsa

因为我没有钥匙。因此,我使用 PuttyGen 创建了一个公钥/私钥 RSA 密钥对。

我将它们保存到我的桌面上,并尝试在上面的命令中输入完整路径:

secure::add_user("hackr", local_key("C:/Users/hackr/Desktop/r_public_key"))

但这并没有奏效:

错误:没有键匹配

然后我尝试将公钥保存在保管库中并执行以下操作:

secure::add_user("hackr", local_key("r_public_key"))

但我遇到了同样的错误。接下来,我尝试将公钥放在工作目录(比保管库高一个目录)中,但出现相同的错误。

最后,我尝试将密钥复制到,但这也导致了同样的错误。C:\Users\hackr\.ssh

我怀疑我需要将密钥保存在特殊的地方(在 Windows 中,我不确定它会在哪里?)和/或我使用了错误类型的密钥,因为 PuttyGen 用于 SSH(?

r

评论

1赞 Andrie 6/18/2017
CRAN 上有一个新包,可以更轻松地对密钥进行编码。cran.r-project.org/package=secretsecret
0赞 Hack-R 6/19/2017
@Andrie谢谢,我会检查一下!

答:

4赞 Dason 9/16/2016 #1

看起来假设您的密钥存储在 ~/.ssh 中(这是一个合理的假设)。默认情况下,它假定该文件名为 id_rsa.pub,因此如果您重命名了它,则需要将名称传递给 local_key。local_key

我没有使用过这个包,但永远记住那些睿智的话“Hack-R 查看源代码"

评论

0赞 Hack-R 9/16/2016
谢谢,所以这就是我的想法,但我认为我尝试过(也许我误解了)。你看到我大约 5 分钟前添加的倒数第二句话了吗?那是你说的那个地方吗?由于它是 Windows,我不确定,因为我知道 Linux 意味着什么,但不知道 Win。在我把它放在那里之后,我尝试了.我现在将尝试重命名它,看看会发生什么。~/secure::add_user("hackr", local_key())secure::add_user("hackr", local_key("r_public_key))
0赞 Dason 9/16/2016
path.expand("~")会告诉您与“~”对应的完整路径。它应该给出与Sys.getenv("R_USER")
0赞 Hack-R 9/16/2016
!!!好的,非常感谢。这扩展到了我的“文档”文件夹。让我在该文件夹中再次尝试,我将尽快更新此线程。无论哪种方式,我都继续对这个答案投赞成票。
0赞 Hack-R 9/16/2016
我在那里创建了文件夹并将文件放在那里,但它仍然说.我还尝试将其重命名为 和Error: No key matches r_public_keyid_rsaid_rsa.pub
0赞 Dason 9/16/2016
我想我只是建议将代码带入并逐步运行它,并检查输出中的内容,看看它是否是您期望的。如果没有,那么试着弄清楚你的哪个假设是错误的。从我的角度来看,很难调试您的特定问题,但您应该能够浏览该代码并找出导致您的问题的部分并希望纠正它。祝你好运。local_key
0赞 Serban Tanasa 10/21/2016 #2

问题是 Hadley 的函数假设您的密钥存储在 ~/.ssh 中,这是以下命令默认放置它的位置,并将其命名为 .如果您有其他设置,可以更改默认值,也可以直接按照以下步骤操作。local_key()id_rsa.pub

第 1 步

转到 https://help.github.com/articles/generating-an-ssh-key/
阅读。这是有用的东西。

它会告诉您在控制台中执行此操作:ssh-keygen -t rsa -b 4096 -C "[email protected]"

设置密码。记住它。

然后输入以下内容:输入您的密码。ssh-add ~/.ssh/id_rsa

步骤 2

你现在应该工作了。secure::add_user("hackr", local_key())