应用层协议2------SSH

如果你跟我一样属于服务器开发人员,那么对SSH协议肯定不会陌生,上篇文章写到了HTTPS中的SSL,是为了点对多的互联网系统构造而生的,那么,问题来了,当你访问自己的服务器时,你是怎么做的呢?

使用证书?

太贵了,虽然现在有免费证书,难道你还不嫌证书安装麻烦吗?

裸连?

服务器的安全我想不必多说了吧,如果你在外面连接了黑客搭建的公开WiFi,他把你的账号密码截取到了,我只能安慰你一句:everything will be ok.

芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。

和HTTPS基本一样

还记得https是怎么保证信息传输的安全性吗?

1.小白把公钥告诉小明
2.小明用自己的公钥加密信件
3.小明用小白的公钥加密自己的公钥
4.小白用私钥解密出小明的公钥
5.小白用小明的公钥解密信件

把小白替换为服务器,把小明替换成服务器操作人员(你)
这时候存在一个问题,你不知道服务器给你发送的公钥是不是真的,因为没有证书去保证公钥的合法性

解决证书问题

初次ssh登录服务器

如果经常和服务器打交道,大家肯定不会对这张图片陌生,简单翻译一下:
无法验证服务器的合法性,它的公钥指纹是98:2e........(可以在服务器提供商那验证,类似于下载东西的时候md5),你确定要继续链接吗?

当技术人员确认了这个公钥的合法性,就可以登陆啦

当远程主机的公钥被接受以后,它就会被保存在文件$HOME/.ssh/known_hosts之中。下次再连接这台主机,系统就会认出它的公钥已经保存在本地了,从而跳过警告部分,直接提示输入密码。
如果下次你再链接相同的服务器(被仿造的服务器)系统就会提示错误

每个SSH用户都有自己的known_hosts文件,此外系统也有一个这样的文件,通常是/etc/ssh/ssh_known_hosts,保存一些对所有用户都可信赖的远程主机的公钥。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 每天上班会经过一片早市,十点过后人散摊撤留下一片狼藉,鱼肠像一堆红色蚯蚓扭曲在路边;卖剩下的西红柿随意散落...
    舟十四阅读 252评论 0 0
  • 据路透社消息称,中国央行将允许商业银行将企业的不良贷款置换为股权。一夜之间看到各种解读,大多是负面的,讲什么不良贷...
    2B青年厘米阅读 279评论 0 0
  • 一. 光绪十三年,皇帝亲政。 但是那个权欲熏心的女人依旧不愿意放弃手中的权柄,垂帘听政。金銮殿上,皇帝心翼而坐,木...
    伊懒阅读 349评论 0 3