问题:
什么是session key?什么是hostkey?什么是user key?什么是known-hosts?
参看http://m.blog.csdn.net/blog/vevenlcf/43273405中的第二个图。
host key是主机(server)密钥,其中有一对公私钥。公钥在client与server建立连接时发送给client。若是首次连接,client保存公钥在known-hosts中,下次连接时,用于对比公钥,以实现对server的验证。
user key是用户(client)密钥,其中有一对公私钥。公钥用于client的身份验证,在server身份验证之后进行。client将Pubkey发给server,server中已经存好了这个client的Pubkey,server将两者对比,以实现对client的验证。
server验证client有主要有两种方法:publickey和password。
session key是会话密钥,在验证server身份之前由client和server商定,是对称密钥。
ssh连接分以下几步:
1、协商密钥session key
2、主机server的身份验证 host key中的Pubkey
3、client身份验证 password或publickey(用到了user key中的Pubkey)
4、建立通道,进行通信