我可以使用相同的 public 密钥进行 ssh 握手和身份验证吗?
Can I use same public key for ssh handshake and authentication?
我有一个应用程序分布并安装在许多机器上。有一台中央机器可以请求安装应用程序的其他机器,其他机器可以请求中央机器。因此,每个安装都将充当服务器和客户端。我想使用 ssh public 密钥加密来保护访问。
为简单起见,假设服务器 A(管理器 - 首先安装)和服务器 B 都安装了应用程序。
假设服务器 B 安装后,服务器 A 的 public 密钥将在服务器 B 中可用。
同时假设服务器A首先向服务器B发出请求,此时服务器A会在握手过程中得到服务器B的public密钥(通过验证指纹,密钥将保存在服务器 A) 和服务器 A 将其 public 密钥发送到服务器 B 进行身份验证。由于服务器 B 已经有服务器 A 的 public 密钥,认证成功吗?.
当服务器 B 想要请求服务器 A 时,服务器 A 将在握手期间发送其 public 密钥,并根据服务器 B 中可用的服务器 A 的 public 密钥进行验证。用于身份验证,服务器 B 将发送其 public 密钥,该密钥将根据服务器 A 在上一次请求握手(从服务器 A 到服务器 B)期间获得的 public 密钥进行验证。
需要注意的一点是,没有用户参与。机器的所有用户都可以访问该应用程序。
我的问题是,我们是否需要单独的密钥来进行握手和身份验证,或者如我所述,单个密钥就足够了?
另外请让我知道上面解释的安全模型会有任何问题,特别是与安全相关的问题吗?
如果您需要更多信息,请告诉我。
谢谢,
娜迦
是的。这被称为 Host-Based authentication,如 RFC4252 第 9 节中所述。但请注意,这构成了多个安全线程,现在使用适当的 (openssh) 证书(或 Kerberos)更有意义。
我有一个应用程序分布并安装在许多机器上。有一台中央机器可以请求安装应用程序的其他机器,其他机器可以请求中央机器。因此,每个安装都将充当服务器和客户端。我想使用 ssh public 密钥加密来保护访问。
为简单起见,假设服务器 A(管理器 - 首先安装)和服务器 B 都安装了应用程序。
假设服务器 B 安装后,服务器 A 的 public 密钥将在服务器 B 中可用。
同时假设服务器A首先向服务器B发出请求,此时服务器A会在握手过程中得到服务器B的public密钥(通过验证指纹,密钥将保存在服务器 A) 和服务器 A 将其 public 密钥发送到服务器 B 进行身份验证。由于服务器 B 已经有服务器 A 的 public 密钥,认证成功吗?.
当服务器 B 想要请求服务器 A 时,服务器 A 将在握手期间发送其 public 密钥,并根据服务器 B 中可用的服务器 A 的 public 密钥进行验证。用于身份验证,服务器 B 将发送其 public 密钥,该密钥将根据服务器 A 在上一次请求握手(从服务器 A 到服务器 B)期间获得的 public 密钥进行验证。
需要注意的一点是,没有用户参与。机器的所有用户都可以访问该应用程序。
我的问题是,我们是否需要单独的密钥来进行握手和身份验证,或者如我所述,单个密钥就足够了?
另外请让我知道上面解释的安全模型会有任何问题,特别是与安全相关的问题吗?
如果您需要更多信息,请告诉我。
谢谢, 娜迦
是的。这被称为 Host-Based authentication,如 RFC4252 第 9 节中所述。但请注意,这构成了多个安全线程,现在使用适当的 (openssh) 证书(或 Kerberos)更有意义。