LinuxSSH命令研究

  简单说,SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
  SSH命令的安全性保障来源于非对称加密,即安全通信由公私钥对来保障。整个过程是这样的:(1)远程主机收到用户的登录请求,把自己的公钥发给用户。(2)用户使用这个公钥,将登录密码加密后,发送回来。(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。然而这种加密方法无法防止中间人攻击。
   如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。因为不像https协议,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。可以设想,如果攻击者插在用户与远程主机之间(比如在公共的wifi区域),用伪造的公钥,获取用户的登录密码。再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了。所以这是SSH命令的缺点之一。
  下面模拟实际场景,演示如何使用SSH进行远程登录:
  1. 下载VMware虚拟机与deepin系统iso镜像,并用该镜像在VMware中运行两个实例,代表本地主机与远程主机:LinuxSSH命令研究_第1张图片
  2. 在deepin系统中默认ssh功能是没有开启的,我们用sudo apt-get install ssh命令安装该功能,并用sudo service ssh start启动LinuxSSH命令研究_第2张图片
  3. 启动SSH功能后,用ipconfig命令查看远程主机的ip地址:
  4.  

  5. 其中deepin2对应我们要连接的远程主机。我们观察该ip配置,得到IPv4地址为192.168.56.132,因为在同意虚拟机中,因此地址为内网地址。我们从deepin1主机出发,试着用ssh命令连接deepin2主机:
  6. 这里的yes/no问的是该主机没有经过权威第三方安全认证,只有指纹(即由ECDSA算法得到的非对称密钥对的公钥),问你是否继续连接。这里我们yes,并输入deepin2的密码,之后就可以成功远程登录deepin2系统:LinuxSSH命令研究_第3张图片

     

登录成功,我们观察到用户名已经切换为deepin2,之后我们做的一切操作就是对deepin2所操作的,到这里我们已经成功登录到远程主机了。

 

 

你可能感兴趣的:(LinuxSSH命令研究)