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

时间:2016-09-16 14:08:07

标签: 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文件夹:

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(?)。

2 个答案:

答案 0 :(得分:4)

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

我没有使用过这个包,但总是记住那些明智的话“Hack-R view the source

答案 1 :(得分:0)

问题是Hadley的local_key()函数假设您的密钥存储在〜/ .ssh中,默认情况下,下面的命令会将其存储在其中,并将其命名为id_rsa.pub。如果您有不同的设置,则可以更改默认设置,或者只需按照以下步骤操作即可。

第1步

转到https://help.github.com/articles/generating-an-ssh-key/
读起来。知道它是有用的东西。

它会告诉你在控制台中执行此操作: ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

设置密码。记住它。

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

第2步

您的secure::add_user("hackr", local_key())现在应该可以使用。