我想使用来自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(?)。
答案 0 :(得分:4)
看起来local_key
假设你的密钥存储在〜/ .ssh中(这是一个合理的假设)。默认情况下,它假定该文件名为id_rsa.pub,因此如果您重命名该文件,则需要将该名称传递给local_key。
我没有使用过这个包,但总是记住那些明智的话“Hack-R view the source”
答案 1 :(得分:0)
问题是Hadley的local_key()
函数假设您的密钥存储在〜/ .ssh中,默认情况下,下面的命令会将其存储在其中,并将其命名为id_rsa.pub
。如果您有不同的设置,则可以更改默认设置,或者只需按照以下步骤操作即可。
转到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
输入您的密码。
您的secure::add_user("hackr", local_key())
现在应该可以使用。