linux使用:SSH概述、在linux下安装SSH命令
一、IP/TCP协议的不安全性
TCP/IP协议有以明文传输、无法验证通讯方身份等特点因此是不安全的通讯协议。是可以被窃听的,窃听者可以通过解析传输的内容,或者仿造为通讯方等方式来截取什么篡改通讯信息,因此如果通信过程被截取,那么这个通讯过程就暴露了出来。
使用TCP/IP协议我们无法辨别信息的安全性,因为明文传输的特点导致了,我们传输的信息可以被窃听者解析,甚至篡改。
可能有人会说我们在通讯过程中设置一个密码不就好了嘛,或者用一个加密算法加密一下。当前可以,但是问题是这个密码或者加密算法怎么通知对方呢?因为你在使用TCP/IP协议传输的过程中,信息就有可能已经被窃听者听到了,所以你设密码的事情,窃听者也知道。难道我们要使用面对面通知对方,或者用电话的方式通知?当然没有必要,因此SSH应运而生。
二、什么是SSH协议
SSH是建立在应用层上的安全协议,采用的RSA 算法,RSA算法是一种非对称加密算法。什么是非对称的?
加密与解密使用的密钥不是同一密钥,对中一个对外公开,称为公钥,另一个只有所有者知道,称为私钥。用公钥加密的信息只有私钥才能解开,反之,用私钥加密的信息只有公钥才能解开(签名验签)。
举个例子:A制作了一个盒子,并上了把锁,只有他自己有钥匙。然后他把盒子和锁送给了B,然后B把东西放在盒子里面锁上了,然后还给了A,那么现在A就可以用钥匙打开锁,拿出里面的东西。
作为窃听者的C虽然在A给B盒子和锁的过程中也获得了盒子和锁,但是他不知道钥匙是怎么做的,因此在B给A还盒子的过程中他无法打开盒子。因此不能看里面的东西。
实际上SSH也是这种原理,SSH协议会产生两个密匙,一个公钥,一个私钥。他的公钥只能由他的私钥打开。他将公钥发送给了别人,而私钥自己持有,当进行通讯的时候,对方通讯的信息包含在其持有的公钥之中传递过来,然后由自己的私钥进行解开。查看其中的内容,如果再传递过程中发生了劫持,那么由于劫持方没有私钥,无法解密信息的内容。因此无法查看其信息。
三、什么是SSH工作流程
我们介绍一下他的工作流程
- 客户端向服务器端发出连接请求
- 服务器端向客户端发出自己的公钥
- 客户端使用服务器端的公钥加密通讯密钥然后发给服务器端
- 如果通讯过程被截获,由于窃听者即使获知公钥和经过公钥加密的内容,但不拥有私钥依然无法解密(RSA算法)
- 服务器端接收到密文后,用私钥解密,获知通讯密钥
四、在linux上安装SSH
在linux最小化安装等安装模式下,linux是没有ssh命令的,我们需要安装他,可以使用root用户执行下面命令安装并启动SSH
[root@tiny01 ~]# yum -y install openssh openssh-clients openssh-server
[root@tiny01 ~]# # 启动SSH
[root@tiny01 ~]# /etc/init.d/sshd start
[root@tiny01 ~]# # 设置SSH自启
[root@tiny01 ~]# chkconfig --level 235 sshd on
五、参考资料
RSA ~ 非对称加密算法