SSH原理学习总结+Ubuntu上实践启动SSH

SSH定义

  • SSH全称为Secure Shell,中文意思为安全外壳协议
  • SSH是一种协议标准,专门为远程登录和其他网络服务提供安全性保证的一种协议。

SSH的历史溯回

SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。

为什么要使用SSH

首先我们要了解一个问题,我们为什么需要使用SSH协议?SSH协议到底能为我们提供什么好处呢?

传统的网络服务程序,如ftp、pop和telnet等传输方式,实际上都存在着极大的安全隐患。因为他们在网络上都是用明文传输口令和数据。这些口令和数据很容易就会被人截获。造成难以估计的损失。

这个时候,我们就需要使用SSH,通过SSH我们可以把所有传输的数据进行加密,这样就不会被人盗取数据了。SSH还有一个好处就是传输的数据是经过压缩的,因此可以加快传输的速度。

可以说,SSH为我们提供了一个既安全又快捷的“通道”。

SSH的工作原理

说完了SSH的优点。那么接下来问题来了。我们怎么样对数据进行加密来保障安全性呢?加密的方式一共有两种:

  1. 对称加密(也称为秘钥加密)
  2. 非对称加密(也称为公钥加密)

那么我们接下来来详细介绍一下这两种加密方式:

对称加密

指加密和解密的时候使用同一套秘钥

  • 优点:对称加密的加密强度高,很难破解。
  • 缺点:对称加密的密钥一旦被窃取,那么整个系统的安全性就彻底被摧毁了。

因此,为了解决这个问题,非对称加密产生了。非对称加密有两个密钥:“公钥”“私钥”

非对称加密

两个密钥:“公钥”“私钥”

  • 特性:公钥加密后的密文,只能用私钥解密。公钥和私钥分离,机会解不开。
  • 在Client和Server各有一个密钥,这样即使在Client端发送解密被盗取公钥时,Sever端还有一个独自的私钥才能解密。这样就保证了数据的安全性。
非对称加密流程
  1. Client向Server发送登录请求,Server把自己的公钥发送给Cilent

  2. Client使用这个公钥,对密码进行加密。

  3. Client将加密的密码发送给Server端。

  4. 远程Server用自己的私钥进行解密登录密码,然后验证其合法性

  5. 验证结果若合法,对Client作出相应的相应。

    注意:私钥是Server独有的,这样就保证了即使Cilent的登录信息被盗取,也没有用私钥进行解密,这样就保证了数据的安全性。

    问题:这样就一定能保证安全了吗?

    我们来想一个问题,如果Client端发送登录请求的时候被拦截,拦截者发送了自己的公钥给Client端,Client端用恶意的公钥进行加密,加密之后拦截者再用自己的私钥进行解密,这样Client端的信息还是会被窃取,这种方式就称为中间人攻击

SSH如何解决中间人攻击问题

基于口令的认证

为了解决中间人攻击问题,就要对Server的公钥进行认证,判断是否为中间人。可是SSH的公钥和私钥都是自己自动生成的,没办法公正,所以我们只能通过Client端自己对公钥进行确认。

通常在我们第一次登陆的时候,系统会让我们进行认证:

The authenticity of host 'ssh-server.example.com (12.18.429.21)' can't be established.
RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
Are you sure you want to continue connecting (yes/no)? 

上面的信息说的是:无法确认主机ssh-server.example.com(12.18.429.21)的真实性,不过知道它的公钥指纹,是否继续连接?

当我们输入yes之后,会出现以下提示:

Warning: Permanently added 'ssh-server.example.com,12.18.429.21' (RSA) to the list of known hosts. 
Password: (enter password) 

表明host已被确认,并被追加到文件known_hosts中,接下来输入密码就可以了。

基于公钥认证

上述基于口令认证的过程中,每次登陆都需要输入密码,很麻烦。因此SSH提供了一种免去输入密码过程的登录方式:公钥登录。

基于公钥认证流程:

  1. Client将自己的公钥存放在Server上,追加在authorized_keys中。
  2. Server端接收到Client的连接请求后,会在authorized_keys中匹配是否有Client之前存放的公钥pubKey,匹配到了之后生成随机数R,用Client的公钥对该随机数进行加密得到pubKey(R),然后将加密后信息发送给Client。
  3. Client端通过私钥进行解密得到随机数R,然后对随机数R和本次对话的SessionKey利用MD5生成摘要Digest1,发送给Server端。
  4. Server端也会对R和SessionKey利用同样摘要算法生成Digest2
  5. Server端最后会比较Digest1和Digest2是否相同,完成认证过程。

我们在基于公钥认证的流程的步骤1中提到,Client要自己手动讲公钥存放在Server上。

需要用户手动将自己的公钥copy上。如下图是GitHub上配置SSH。

GitHub上配置SSH

SSH实践

SSH的安装

本机安装实践是在基础win10+Ubuntu 上进行的

SSH分为客户端openssh-client和服务器openssh-server,输入一下命令确认电脑上是否安装了客户端和服务器

~$ dpkg -l | grep ssh
确认服务器和客户端

如上图所示,Ubuntu默认安装了客户端和服务器,这样就不用我们再安装了。

如果想要远程登录别的机器要安装客户端,要开放本机的SSH服务要安装服务器。

如果你的电脑上没有客户端和服务器,以下指令可以安装客户端和服务器:

~$ sudo apt-get install openssh-client
~$ sudo apt-get install openssh-server
安装客户端和服务器
启动服务器的SSH服务

我们安装准备都完成了之后,我们要来确认一下ssh-server是否已经启动了

~$ ps -e | grep ssh
启动服务器

有上图所示表明服务器已经启动了。如果你输入指令之后什么都没显示,那么输入下面的指令:

~$ sudo /etc/init.d/ssh start
~$ ps -e | grep ssh
启动服务器

这样就顺利启动了。

停止和重启SSH服务的指令如下:

~$ sudo /etc/init.d/ssh stop  #server停止SSH服务 
~$ sudo /etc/init.d/ssh restart  #server重启SSH服务

此篇SSH学习谨向简书博主TopGun_Viper写的https://www.jianshu.com/p/33461b619d53图解SSH原理的学习笔记和总结。有兴趣的同学可以移步。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容