【发布时间】:2018-09-22 17:49:39
【问题描述】:
我正在使用 WinSCP .NET assembly 通过 SFTP 上传文件,SessionOptions properties 之一是 SshPrivateKeyPath,这是我使用 PuTTYgen 创建的私钥文件的位置。该文件位于我 PC 上的 C: 驱动器上:
SessionOptions sessionOptions = new SessionOptions
{
SshPrivateKeyPath = "C:\Users\blah\Documents\MyPrivateKey.ppk";
}
注意:我实际上将文件路径作为配置设置,但你明白了。
这样做对我来说很有意义,因为当部署到测试/实时环境时,密钥及其位置会有所不同。此外,由于它不是项目的一部分,因此不受源代码控制。
但是,我似乎找不到解决此问题的标准方法,并且我担心我正在做的事情不是正确的做法。有什么建议吗?
【问题讨论】:
-
试试
App_Data,它是一个安全文件夹。参见例如this answer. -
你的问题不清楚。一方面,该文件似乎已经以某种方式存在于机器上,您只需要相应地配置应用程序。另一方面,您正在询问在哪里部署密钥。为什么您甚至希望密钥与应用程序分开?
-
@MartinPrikryl 对不起,如果我不清楚,这对我来说是全新的,所以我不可避免地会做出一些不正确的假设。我假设私钥在每个环境中都会不同,即 dev/test/live,并且密钥可以在多个应用程序之间共享。这就是为什么我将密钥分开的原因。从您的回复中我可以看出我应该将它作为应用程序的一部分包含在内,因此关键是特定于应用程序的,在这种情况下保留在应用程序中非常有意义。
标签: .net ssh private-key winscp winscp-net