让我们假设你有一个客户端C和一个服务器S.
机器C使用ssh连接到服务器S,使用RSA密钥不启用密码连接。所以C拥有他的私钥,并给了S公钥。
为此,我可以使用RSA密钥来证明S吗?我想每次C尝试连接到Ssh中的S时,可以肯定他真的和S说话。所以完全像证书X509,但是有RSA密钥?
如果我没错,那将是双重身份验证吗?
谢谢
答案 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登录。
我希望它能澄清你的疑问。