从ssh客户端来看,ssh服务主要提供两种级别的安全验证
基于口令的安全验证:
基于口令的安全验证的方式就是大家现在一直在用的,只要知道服务器的SSH连接帐号和口令(当然也要知道对应服务器的IP及开放的SSH端口,默认为22),就可以通过ssh客户端登录到这台远程主机。此时,联机过程中所有传输的数据都是加密的
基于密钥的安全验证:
基于密钥的安全验证方式是指,需要依靠密钥,也就是必须事先建立一对密钥对,然后把公钥(Public key)放在需要访问的目标服务器上,另外,还需要把私钥(Private key)放到SSH客户端或 对应的客户端服务器上。
此时,如果要想连接到这个带有公钥的ssh服务器,客户端ssh软件货值客户端服务器就会想ssh服务器发出请求,请求用联机的用户密钥进行安全验证,ssh服务器收到请求之后,会先在该ssh服务器上连接的用户的家目录下寻找事先放上去的对应用户的公钥,然后把它和连接的ssh客户端发送过来的公钥进行比较,如果两个密钥一直,ssh服务器就用公钥加密质询(challenge)并把它发送给ssh客户端。
ssh客户端收到质询之后就可以用自己的私钥解密,再把它发送给ssh服务器。