什么是 ssh 密钥以及如何处理它们?

什么是 ssh 密钥以及如何处理它们?

我已经在 Linux 世界中呆了很长时间了(差不多 10 年),但仍然有几个概念我无法理解。其中之一就是 ssh...
我知道它的基本知识(创建、备份、恢复、撤销),但我想问是否有人可以回答我一些简单的问题 [1]:

拥有多个 ssh 密钥可以吗?(我目前在每台我使用的电脑上都有一个用于 launchpad 的,还有一个用于 github 的)
是否需要对每台计算机使用不同的密钥,还是可以在所有计算机上使用相同的密钥?(制作密钥、备份密钥,然后在其他计算机上恢复该备份)
如果我忘记撤销 ssh 证书,最糟糕的情况会是什么?(例如,如果我的无密码计算机被盗,而我忘记备份撤销密钥)

附言:一些最近转向 Ubuntu 的朋友问了我一些这方面的问题,我觉得自己很笨,无法回答他们。

[1]: 网络上的几乎所有内容都假设您已经了解有关 ssh 的一切。

答案1

您可能混淆了 ssh 密钥和 pki 密钥,ssh 密钥没有撤销密钥(据我所知)。

基本概念是为每台客户端计算机制作一个密钥对。这些密钥位于~/.ssh

id_rsa是您应该妥善保管的私钥,
id_rsa.pub而是您不需要妥善保管的公钥。

要使客户端计算机能够访问您的远程服务器,请将 id_rsa.pub 添加到远程服务器~/.ssh/authorized_keys文件中。这可以使用 ssh-copy-id 自动完成

如果客户端的私钥被泄露,只需从中删除其公钥~/.ssh/authorized_keys即可。每行都是一个密钥,应以 user@host 之类的标识符结尾。

常见的做法是给每台计算机自己的密钥对,这样你就可以轻松地撤销该计算机对服务器的访问权限。

相关内容