0

我正在 Azure 中实现一个云服务(工作者角色)应用程序,它可以将私钥文件从 Azure 本地存储添加到 Pageant。p变量也是 aProcess开始的cmd.exe

var filename = "pageant.exe";

var workerRoleStorageName = "PrivateKeys";
var privatekeyfilename = "ThePrivateKey.ppk";
var localResource = RoleEnvironment.GetLocalResource(workerRoleStorageName);
var path = Path.Combine(localResource.RootPath, privatekeyfilename);

p.StandardInput.WriteLine(filename + " "+ path);

我现在在本地,所以path变量的内容是这样的:

c:\Users\Username\AppData\Local\dftmp\Resources\4691e8f6-fdbd-42ad-af67-986b491aca89\directory\PrivateKeys\ThePrivateKey.ppk

但是在最后一行代码中,我收到以下错误消息:

无法加载此密钥(无法打开文件)。

这很有趣,因为如果我设置一个硬编码的简单路径,它就可以正常工作:

var path = @"E:\PrivateKeys\ThePrivateKey.ppk";

我知道在这种情况下 Azure 本地存储文件夹是隐藏的,所以我尝试将E:\PrivateKeys文件夹设置为隐藏,但它仍然可以使用硬编码路径。

您怎么看,为什么我不能从该路径将此文件添加到 Pageant?

4

1 回答 1

0

不幸的是,当未能加载私钥时,选美活动的信息量不是很大。它报告“无法加载此密钥(无法打开文件)。” 对于任何错误,包括不存在和缺少或读取权限。

从您的评论中可以清楚地看出,在这种特殊情况下,它缺乏权限。

我想您需要以更高的权限或适当的角色运行您的应用程序。我不希望您只能cmd.exe从特权较低的进程中运行具有较高特权的进程。

于 2014-08-26T15:22:22.060 回答