我正在尝试使用 R AzureDSVM 包通过 R 创建 Linux DSVM。我正在阅读指南https://raw.githubusercontent.com/Azure/AzureDSVM/master/vignettes/10Deploy.Rmd(Azure DSVM 指南)
首先,该指南要求您创建一个 Azure Active Directory 应用程序,该应用程序将提供“租户 ID”、“客户端 ID”和“用户密钥”,这些指南在http://htmlpreview.github.io/?https://github中描述.com/Microsoft/AzureSMR/blob/master/inst/doc/Authentication.html(Azure SMR 身份验证指南)
据我了解,这会创建一个在 Azure Active Directory 中注册的应用,为该应用创建一个“身份验证密钥”,即用户密钥,并将该应用与资源组相关联。我已经成功地做到了。
然后,Azure DSVM 指南以类似于以下内容的方式创建具有公钥身份验证的 VM:
library(AzureSMR)
library(AzureDSVM)
TID <- "123abc" # Tenant ID
CID <- "456def" # Client ID
KEY <- "789ghi" # User key
context <- createAzureContext(tenantID=TID, clientID=CID, authKey=KEY)
resourceGroup<-"myResouceGroup"
location<-"myAzureLocation"
vmUsername<-"myVmUsername"
size<-"Standard_D1_v2"
mrsVmPassword<-"myVmPassword"
hostname<-"myVmHostname"
ldsvm <- deployDSVM(context,
resource.group = resourceGroup,
location = location,
hostname = hostname,
username = vmUsername,
size = size,
os = "Ubuntu",
pubkey = PUBKEY)
该指南含糊地描述了从用户私钥创建公钥 (PUBKEY),该私钥被发送到 VM 以允许其提供 SSH 身份验证:
首先,我们需要加载我们的 Azure 凭据以及用户的 ssh 公钥。Linux 上的公钥通常在用户台式机/笔记本电脑上创建,并且可以在 ~/.ssh/id_rsa.pub 中找到。创建一个凭证文件来包含这些信息会很方便。凭证文件的内容类似于以下内容,我们假设用户在当前工作目录中创建了这样一个文件,并将文件命名为 _credentials.R。替换为用户的用户名。
TID <- "72f9....db47" # Tenant ID CID <- "9c52....074a" # Client ID KEY <- "9Efb....4nwV....ASa8=" # User key PUBKEY <- readLines("~/.ssh/id_rsa.pub") # For Linux DSVM
我的问题:
此公钥 PUBKEY 是从通过在 Azure SMR Auth 指南中设置 Azure Active Directory 应用程序(上述脚本中的 KEY 变量)创建的身份验证/用户密钥生成的吗?如果是这样,怎么做?我尝试使用 R 钠库pubkey(charToRaw(KEY))
来执行此操作,但我得到“无效的密钥,必须正好是 32 个字节”。
如果 PUBKEY 不是从 KEY 生成的,它是从什么生成的?包如何知道如何使用该公钥的私钥进行身份验证?