提问人:Hack-R 提问时间:9/16/2016 最后编辑:Hack-R 更新时间:10/21/2016 访问量:423
如何使用 Hadley 的安全包正确设置密钥
How to correctly setup keys with Hadley's secure package
问:
我想使用 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(?
答:
看起来假设您的密钥存储在 ~/.ssh 中(这是一个合理的假设)。默认情况下,它假定该文件名为 id_rsa.pub,因此如果您重命名了它,则需要将名称传递给 local_key。local_key
我没有使用过这个包,但永远记住那些睿智的话“Hack-R 查看源代码"
评论
~/
secure::add_user("hackr", local_key())
secure::add_user("hackr", local_key("r_public_key))
path.expand("~")
会告诉您与“~”对应的完整路径。它应该给出与Sys.getenv("R_USER")
Error: No key matches r_public_key
id_rsa
id_rsa.pub
local_key
问题是 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())
评论
secret