【发布时间】:2022-10-07 16:59:21
【问题描述】:
我有一个带有Apache SSHD 的 Spring Boot 应用程序。应用程序应使用SSH Public Key Authentication。因此,应用程序需要一个私钥。如何提供这个私钥?
出于安全原因,私钥不应保存在
- 源代码(在 Git 中)
- 类路径(在 JAR 中)
- 图像(在 Docker 注册表中)
- 主机/卷(使用 Docker 挂载)
相反,私钥应作为环境变量提供(使用 GitLab)。
文档
在文档中只是保存在文件系统中的私钥的示例,请参阅Loading key files:
加载密钥文件
为了使用无密码身份验证,用户需要提供一个或多个
KeyPair-s,用于“证明”服务器的客户端身份。该代码支持大多数(如果不是全部)当前使用的密钥文件格式。有关如何加载文件的示例,请参见SshKeyDumpMain类 - 基本上:KeyPairResourceLoader loader = SecurityUtils.getKeyPairResourceParser(); Collection<KeyPair> keys = loader.loadKeyPairs(null, filePath, passwordProvider);研究
我可以按照create java PrivateKey and PublicKey from a String of file 中的描述创建
KeyPair,但是我会重新实现Apache SSHD 的现有部分。我必须支持所有当前使用的密钥文件格式。问题
如何从
String而不是文件系统加载私钥?
标签: ssh-keys apache-sshd