我可以使用相同的公钥进行ssh握手和身份验证吗?

时间:2016-07-09 19:29:57

标签: ssh rsa public-key-encryption public-key

我有一个分发并安装在许多机器上的应用程序。有一台中央机器可以请求其他机器安装应用程序,其他机器可以请求中央机器。因此,每个安装都将充当服务器和客户端。我想使用ssh公钥加密来保护访问权限。

为简单起见,我们假设服务器A(管理员 - 首先安装)和服务器B安装了应用程序。

让我们说服务器B安装后,服务器A的公钥将在服务器B中可用。

同样假设服务器A将向服务器B发出第一个请求。当这样做时,服务器A将在握手期间获得服务器B的公钥(通过验证指纹,密钥将保存在服务器A中) )和服务器A将其公钥发送到服务器B进行身份验证。由于服务器B已经拥有服务器A的公钥,验证成功吗?。

当服务器B想要请求服务器A时,服务器A将在握手期间发送其公钥,并且根据服务器A在服务器B中可用的公钥进行验证。对于认证,服务器B将发送其公钥,将根据服务器A在上一次请求握手期间获得的公钥(从服务器A到服务器B)进行验证。

需要注意的一点是,没有涉及用户。该应用程序可供本机的所有用户访问。

我的查询是,我们是否需要单独的密钥进行握手和身份验证,或者我所描述的单个密钥是否足够?

还请让我知道上面解释的安全模型会有什么特别的安全问题吗?

如果您需要更多信息,请与我们联系。

谢谢, 纳加

1 个答案:

答案 0 :(得分:0)

是。这被称为Host-Based authentication,如RFC4252第9节中所述。但请注意,这构成了几个安全线程,并且使用正确的(openssh)证书这些天(或Kerberos)更有意义。