用户或系统的公钥和私钥是否保持不变?

new*_*bie 4 ssh key-authentication

我曾请求访问 Git 存储库,并在我提供了公钥和私钥后获得了访问权限。

(使用ssh-keygen -t rsa给我的常用方法生成:

<user> @ <hostname> : ~/.ssh $ > ll
total 20K
-rw-------. 1 <user> 1.7K Mar 02 10:14 id_rsa
-rw-r--r--. 1 <user>  407 Mar 02 10:14 id_rsa.pub
-rw-r--r--. 1 <user> 1.3K Mar 01 14:25 known_hosts
Run Code Online (Sandbox Code Playgroud)

)

但是,我不小心删除了我的主目录。幸运的是,我备份了所有重要文件,因此恢复这些文件并不麻烦。

但是,尝试使用旧的公钥和私钥再次克隆 Git 存储库,我不能。Git 要求我输入密码,就像对待任何非授权用户一样。

因此,我不得不使用我当前的公钥和私钥再次请求访问。

经过比较,我发现新的密钥实际上与第一个不同。


所以,我的问题是,

  1. 为什么同一台机器上的用户的公钥和私钥会发生变化?
  2. 继续这个问题,为什么我不能使用旧的公钥和私钥在没有其他任何变化的情况下访问存储库?
  3. 如果我使用 再次创建它们,密钥会改变ssh-keygen -t rsa吗?

如果需要,我可以提供更多信息。

Pra*_*wal 8

  1. 密钥对与您作为用户或您的机器无关。想象一下你家的钥匙被偷了。钥匙不受您的约束,任何人都可以使用它们来解锁您的门。以完全相同的方式,如果我掌握了您的私钥,我可以使用它来更改您的 Github 存储库。
  2. 如果你想同时使用新的钥匙和你的旧访问您的资料库,您需要确保的公共钥匙两个密钥对被上传到Github上。如果 Github 只有您的新密钥,如果您使用旧密钥对,它就无法验证您的身份。
  3. 是的,密钥会改变。这就是重点。想象一下为你的门买一把新锁。如果您的旧钥匙与新钥匙相同,则对您没有任何好处,尤其是。如果您因为有人偷了您的旧钥匙而更换锁。如果您的 ssh 密钥之一被泄露,您可以简单地生成新密钥并在删除旧密钥后将相应的公钥上传到 Github。您还可以拥有多个密钥对。生成任意数量的,并将它们用于不同的目的。这类似于在你的房子里有多个锁的多把钥匙。

也永远不要泄露你的私钥。私钥用于验证您的身份。如果我拿到了你的私钥,我就可以假装是你。Github 无法区分。没有人,但你需要知道你的私钥是什么。如果您已将您的私钥上传到某处,我建议您将其删除,生成新的一对并上传新的公钥以确保安全。

在此处阅读有关公钥加密的更多信息。