c# - 具有非基于文件的 key 的 SFTP

标签 c# c++ authentication sftp

我打算使用带有公钥/私钥身份验证的 SFTP 编写一些软件,以将文件上传到服务器。我想知道人们建议如何管理 key (尤其是私钥)。

我的目标平台是带有 C# 或 C++ 的 Windows。我看过很 multimap 书馆:

C#
(免费/开放)
SharpSSH
Granados

(商业)
Rebex

C++
libcurl/OpenSSH

所有这些似乎都需要将私钥存储在文件系统中,出于安全原因我希望避免这种情况。我也不想自己实现身份验证,尽管我认为这是一种选择。我的问题:

有没有办法直接从内存中为这些库(或我可能忽略的任何库/API)提供键值,而不是从文件加载?

如果不是,那么管理这些 key 文件的推荐方法是什么?除了密码加密和严格的访问控制之外,还应该采取其他措施来保护 key 文件吗?

最佳答案

All of these appear to require the private key to be stored on the filesystem, which I would prefer to avoid for security reasons.

我认为您应该拥抱文件系统。现代的诸如 NTFS(作为 Windows 开发人员,您几乎肯定会使用它)具有强大的安全机制,这些机制可能比您(或我)可能设计的大多数替代机制都经过深思熟虑。 NTFS 具有访问控制列表、加密等等——如果您不能相信您的文件系统能够保证您的数据安全,那您为什么还要费心去关心网络流量呢?

我会注意到,在某些特定情况下可能无法执行我上面所说的操作,但我在原始帖子中没有看到任何提及。

关于c# - 具有非基于文件的 key 的 SFTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4350484/

相关文章:

c# - 当您还需要 "default"具体依赖项时,哪种依赖项注入(inject)更好的模式?

c# - 为 C# COM 服务器创建 C++ COM 客户端

C# string.split() 按大写分隔字符串

c++ - 如何重载运算符+?

azure - 如何强制使用 Azure 帐户选择器

php - foreach 中的 if 语句仅检查最后一个值

c# - Asp.net core cookie 身份验证请求过多

c# - MvvmCross 在 .NET Standard 项目中使用的实际 SQLite 插件

c++ - 串口传输错误如何解决?

c++ - 递归共享库加载 - 无法打开共享对象文件