R 如何使用Hadley';s安全包

R 如何使用Hadley';s安全包,r,R,我想使用来自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文件夹:

我想使用来自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\u rsa匹配的密钥

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

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

secure::add_user("hackr", local_key("C:/Users/hackr/Desktop/r_public_key"))
但这不起作用:

错误:没有密钥匹配

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

secure::add_user("hackr", local_key("r_public_key"))
但我也犯了同样的错误。接下来,我尝试将公钥放入工作目录(比保险库高一个目录),但得到了相同的错误

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


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

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


我没有使用过这个软件包,但始终记得那些明智的词语“Hack-R”

问题是Hadley的
local\u key()
函数假设您的密钥存储在~/.ssh中,下面的命令默认情况下会将其放置在该ssh中,并将其命名为
id\u rsa.pub
。如果您有不同的设置,您可以更改默认设置,或者只需执行以下步骤

第一步 转到
仔细阅读。这是很有用的知识

它将告诉您在控制台中执行此操作:
ssh-keygen-t rsa-b4096-C“您的_email@example.com“

设置密码短语。记住它

然后输入以下内容:
ssh add~/.ssh/id\u rsa
输入您的密码短语

步骤2
您的
secure::add_user(“hackr”,local_key())
现在应该可以工作了。

谢谢,所以这就是我的想法,但我想我试过了(也许我理解错误)。你看到我5分钟前加的第二句到最后一句了吗?你说的是同一个地方吗?因为它是Windows,所以我不确定,因为我知道
~/
对Linux意味着什么,但我不知道它是否会赢。在我把它放在那里之后,我尝试了
secure::add_user(“hackr”,local_key())
secure::add_user(“hackr”,local_key(“r_public_key”)
。我现在将尝试重命名它,看看会发生什么。
path.expand(“~”
将告诉您与“~”对应的完整路径。它应该给出与
Sys.getenv(“r_user”)相同的内容
!!!好的,非常感谢。这扩展到了我的Documents文件夹。让我在该文件夹中再试一次,我会尽快更新此线程。不管怎样,让我继续并向上投票这个答案。我在那里创建了文件夹并将文件放在那里,但它仍然说
错误:没有密钥匹配r\u public\u key
。我还尝试将其重命名为de>id\u rsa和
id\u rsa.pub
我想我只是建议将代码放入
local\u key
中,一步一步地运行它,检查输出中的内容,看看它是否是您所期望的。如果不是,那么试着找出您的假设中哪些是错误的。从我的角度来看,调试您的特定问题很困难,但是你应该能够浏览这些代码,找出是哪个部分导致了你的问题,并希望能够纠正它。祝你好运。CRAN上有一个新的包,
secret
,它使你的秘密编码更容易。@Andrie谢谢,我会查出来的!