如果有人篡改了我的 SSH 公钥,我该怎么办?

Kev*_*Kev 32 linux encryption

我知道私钥被泄露是一个巨大的风险;但是,公钥呢?如果他们被篡改怎么办?

如果有人要访问与我在 Linux 服务器中用于 SSH 的私钥相关联的公钥并对其进行修改,这不会阻止我访问服务器吗?因此,影响我的可用性?

Gia*_*968 46

只要您拥有私钥,您就可以随时重新生成公钥。

你问:

如果有人要访问与我在 Linux 服务器中用于 SSH 的私钥相关联的公钥并对其进行修改,这不会阻止我访问服务器吗?因此,影响我的可用性?

你担心的情况是这样的,比如你让你的电脑开着,不要让它进入睡眠状态,跑去做某事,然后有人走到你的电脑前,只在你的公钥中添加几个字符,这样它就有效了损坏的?甚至删除它?

只要你有你的私钥就不用担心。只需运行此命令:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)

并且您的公钥将被重新生成。请注意,不会id_rsa.pub通过此方法将公钥行末尾的注释添加到此注释中,该注释可让您更轻松地识别哪个密钥是什么(通常是电子邮件地址)。所以你可能想在文本编辑器中打开它并手动添加它。

关于您的其他问题。

现在,如果您担心有人以拒绝您访问的方式破解远程机器上的公钥?老实说,在这种情况下,您将有一个相当大的问题需要处理。

通常,有人需要能够访问 root 或具有无密码 sudo 权限的帐户或访问您在该机器上自己的帐户的权限才能执行此操作。这并非闻所未闻,充其量只是一种罕见的情况。


小智 17

听起来您是在问是否有人进入了“我的”Linux 机器,修改了 .ssh/authorized_keys,其中包含允许访问 Linux 机器的公钥,并且“修改它,不会阻止我访问服务器;因此(e),影响我这边的可用性?”

是的,如果在authorized_keys 文件中更改了公钥,它将与您的私钥不匹配,但这就像说有人进入您的房子,更换了您的门锁,现在您的房屋钥匙不再起作用。

他们是如何首先做出改变的?只有 root 和登录所有者可以更改他们自己的 authorized_keys 文件,因此您可能会怀疑这些文件。


Chr*_*age 14

公钥的全部意义在于广为人知。它可以由PKI(公钥基础设施)审查。您可以在您的 PC 上本地使用您的私钥对消息(和其他内容)进行签名,其他人可以确认该消息来自您。

同样,可以将公钥放入远程服务器上的 SSH 配置文件中。当您通过 SSH 连接到这些服务器时,它们提出了一个挑战,只有拥有正确私钥的人才能正确回答。

你原来的问题问:

“如果有人要访问与我在 Linux 服务器中用于 SSH 的私钥相关联的公钥,并对其进行修改”...

那么它将不再是相同的公钥。您可以立即为其他管理员重新生成公钥以设置正确的公钥。

您还有次要的担忧:还有谁可以访问我的机器,他们可以做什么,我该如何恢复?软管的答案是复杂的和情境化的。

网络上有许多关于 SSH 和 PKI 的好资源……这是一个好的开始:SSH Essentials: Working with SSH Servers, Clients, and Keys


Bar*_*mar 6

是的,如果他们更改您在服务器上的公钥,那将拒绝您访问服务器。

但情况更糟。如果他们将其更改为其他人的公钥,则意味着该其他人可以在服务器上冒充您。这与使用传统身份验证时有人更改密码的后果非常相似。

但是,如果有人能够更改您的公钥,他们也可能有能力添加其他公钥。因此,他们可以让自己在不拒绝您访问的情况下冒充您,并且您可能永远不会意识到有什么不对劲,直到有人指责您在服务器上做了一些您没有做的事情。