ssh 密钥和 ssh 的工作原理

ssh 密钥和 ssh 的工作原理

我一直在尝试理解 ssh 的整个概念。但我仍然无法掌握这个概念。我参考了网上的各种资料 -

OpenSSH

ssh_config 和 sshd_config 之间有什么区别/

以下是我的疑问——

  1. 每次我们创建 ssh 密钥(假设我们每次都覆盖 id_rsa.pub 文件)时,远程服务器如何收到通知?它是否收到通知是因为它已被添加到已知主机列表中,并且有一些内部机制可以告知这些远程主机密钥已更改。还是因为文件授权密钥?

  2. 如果我更改了公钥,我可以手动将其改回我生成的任何旧密钥吗?在这种情况下,我可以使用那些旧密钥连接到我之前连接的远程服务器吗?

  3. 在本地主机上执行 ssh 到底是什么意思?它有什么好处呢?因为它可以连接到您可以访问的本地机器。

任何提供 ssh 详细解释的资料都非常受欢迎。TIA :)

笔记 这是我在这个社区的第一个问题。如果这里不适合提问,请告诉我。

答案1

每次我们创建一个 ssh 密钥(并且假设我们每次都会覆盖 id_rsa.pub 文件),远程服务器如何收到通知?

没有自动通知。此外,如果您覆盖现有密钥对,而这是唯一允许您访问远程系统的东西,您将不再具有访问权限。我强烈建议您不要覆盖密钥。而是创建多个密钥。然后使用您的 .ssh/config 为特定连接定义密钥,或将所有活动密钥添加到 ssh 代理。

一旦创建新的密钥对,您就需要将公钥重新发布到您需要进行身份验证的任何主机。

当我生成密钥时,我倾向于给它们命名,并添加注释,包括生成它们的时间。就像这样。

ssh-keygen  -C zoredache_20160217_id -f zoredache_20160217_id_rsa

如果我更改了我的公钥,我可以手动将其改回我生成的任何旧密钥吗?

如果您覆盖/替换它则不会。再次提醒,请保留您的旧密钥对。请保留您的旧密钥对。

它与本地机器建立连接后能带来什么好处

这样做的理由很少。但是,我发现一些罕见的应用程序在我 时无法正常工作。sudo -i -u anotheraccount当我ssh anotheraccount@localhost可以使用这些应用程序时。一个例子是断开连接的 GNU Screen 会话。Screen 对用于重新连接的终端的所有权有些挑剔。使用 SSH 连接到另一个帐户可以使其正常工作。

相关内容