UNIX SSH 私钥

UNIX SSH 私钥

如果我的服务器为我的客户端创建 SSH 密钥对是否安全?场景:我(服务器管理员)将创建一个 ssh 密钥对,并将公钥放入authorized_keys中,并将私钥提供给客户端,以便他可以访问我的 sftp 服务器。

答案1

快付 0.02 美元,因为我要准备上班:

假设该服务器不保护实际的银行或国家安全级机密,那就没问题。

我能想象到的唯一潜在风险是,如果敌对第三方拦截了足够多的私钥以及它们生成的确切时间,他们可以使用它来预测服务器随机数生成器的状态和算法,这在一些非常复杂的攻击中可能有用。

...当然,如果他们可以拦截你拥有的那么多私钥已经有更大的问题了

最安全的做法是让客户端生成密钥对并使用可信渠道向您发送要包含在文件中的公钥authorized_keys,但如果出于某种原因这不是一个选项,您主要担心的是如何安全地将私钥发送给收件人,并且仅有的预期的收件人。

答案2

你的客户应该是生成自己的密钥使用密码保护它们,然后给你他们的公钥存储在您管理且他们需要访问的服务器上。他们的私钥永远不应该透露给任何人,并且应该加密(即使用密码保护)。

答案3

要允许通过 ssh/scp/sftp 进行访问,您可以使用公钥/私钥对。 (*)

如果您生成并安装这样的对,您将控制谁将访问您服务器的特定部分(在您的情况下是 sftp 目录)。

如果您有两个或更多客户/合作伙伴,请务必为每个合作伙伴生成一个密钥。

这样 customer1 将访问 customer1 的部分。如果设置正确 (**),私人 customer1 的密钥将不会访问 customer2 的文件,也不会访问服务器的任何其他部分。

  • (*) 假设 Shadur 指出,该转移是安全的来自窥探的眼睛。
  • (**) 如果可能的话使用 chroot (这取决于您的目录结构)。

正如我(已删除)评论中所述,这也是客户信任的问题,但这应该没问题,客户已经信任您的文件。

相关内容