我喜欢将我的公钥(例如:~/.ssh/id_rsa.pub)上传到我工作时连接到的各种网络上的各种服务器。我在 github 上使用相同的公钥。如果我使用共享用户帐户并将我的公钥放在那里,有人会拿走它并利用它做一些不利的事情吗?通常,只在多个服务器之间共享 1 个公钥不是一个明智的想法吗?
答案1
是的,它是安全的。密钥对的基本思想是公钥只能用于“验证”用私钥加密的内容。不可能用该密钥加密以某种方式冒充私钥的原始所有者。(已编辑以澄清)
这就是为什么它被称为“公共”。
“私人”密钥是您必须锁定并且永远不能与他人共享的密钥,因为它是用于生成加密数据的密钥。
编辑:正如评论中指出的那样(谢谢!)公钥也可以加密可以使用私钥解密的数据,但它不允许使用公钥冒充私钥。这是使用“公钥”和“私钥”的主要思想。
答案2
与公众普遍的看法相反,不,仍然有一些对手在知道你的公钥后可以做的事情,尽管这些事情有点牵强,但大多数都是通过隐蔽性来实现安全性。我提到这些是为了完整性。
例如,如果你的密钥是使用有缺陷的软件生成的,例如OpenSSL 版本补丁不正确,可能可以猜出你的私钥各种攻击,手段各异在这种情况下,泄露您的公钥可能会暴露您容易受到攻击的事实,并告诉攻击者他实际上可以侵入您的帐户。
如果您使用的是ssh-agent
,您的 ssh 客户端会将所有公钥的指纹传输到您连接的任何服务器。这比让服务器透露哪些密钥可以访问帐户要好。因此,如果您心怀恶意,并试图(粗暴地)闯入 ssh 服务器,您可能会在不知情的情况下传输您的公钥,这可能会让您在以后被识别。