网络基础 -- SSH原理
以前互联网的通讯都是明文的,被拦截了信息就泄露了,到了1995年的时候,有个芬兰学者不知道是啥名的设计了SSH协议,对登录信息进行加密,这个东西也是使用非对称加密的方式。
远程登录方法一:客户端向主机发起请求,主机就抛给你一个公钥,然后你把自己的用户名和密码用这个公钥进行加密,加密完成后再传输给主机,主机用自己当私钥进行解密,然后验证你的登录信息是否合法
这个地方有一个问题,要是有人在中间拦截了客户端发起的请求,然后将自己的公钥丢给了客户端,那客户端拿这个公钥去做加密并把数据给这个中间人的话信息就泄露了,整个安全系统也就崩溃了,这个SSH又不像https那样有一个证书认证,所以没有什么好办法,当主机第一次给你公钥的时候系统会警告你自己去核对这个公钥,公钥一般是那种2048位反人类的东西,只好又把他做下转换弄成一个指纹(其实就是一个短一点的字符串,容易做识别),拿到这个指纹就没有好办法了,自己去主机的官网上查询他的公钥去吧,对比完成后选择接受这个公钥,然后你就能做登录了,并且这个公钥还会被保存到本地的$HOME/.ssh/known_hosts这个地方,本地还有一个/etc/ssh/ssh_known_hosts保存了一些对于所有用户来说都可信的远程主机的公钥
远程登录方法二:这个是给自己生成一个私钥和公钥然后把公钥传输给远程主机,以后要做登录的时候就不用输入用户名和密码了,只要发起请求后远程主机会给你一份字符串,用私钥加密后发给主机,主机用公钥解密后对比信息就可以完成身份认证
