通过RSA密钥进行ssh双重身份验证

时间:2014-09-15 19:33:19

标签: authentication ssh

让我们假设你有一个客户端C和一个服务器S.

机器C使用ssh连接到服务器S,使用RSA密钥不启用密码连接。所以C拥有他的私钥,并给了S公钥。

为此,我可以使用RSA密钥来证明S吗?我想每次C尝试连接到Ssh中的S时,可以肯定他真的和S说话。所以完全像证书X509,但是有RSA密钥?

如果我没错,那将是双重身份验证吗?

谢谢

2 个答案:

答案 0 :(得分:0)

实际上每次服务器都会将自己的公钥发送给客户端,当您第一次连接到服务器时,您会收到密钥的指纹并决定是否信任他。

答案 1 :(得分:0)

我无法理解你的问题。你能详细说明一下吗?

让我简要介绍一下SSH连接。

客户端连接到服务器

客户询问服务器身份。 (这可以通过各种Publickey算法完成) 例如: ssh-rsa,ssh-dsa等是publickey格式类型 x509v3-ssh-rsa,x509v3-ssh-dsa等是证书格式类型

Publickey算法支持以上格式。

仅供参考:证书只是带有所有权信息的公钥。

现在服务器将其标识(公钥或证书)发送到客户端

客户验证它。

如果没问题,那么服务器会要求客户识别。

根据SSH协议,可以通过publickey,密码,键盘交互等方法完成。

现在没有密码方法,publickey是正确的方法。 这里Publickey是方法名称。内部支持许多公钥和证书方法(与上面提到的相同)

客户端然后选择publickey方法并将其标识以publickey(ssh-rsa或...)或证书(x509v3-sshrsa或...)的形式发送到服务器。

服务器将验证此标识。

如果一切正常,则允许用户使用SSH登录。

我希望它能澄清你的疑问。