实验一:SSH实验

本文详细介绍了SSH协议的三个主要组件及其工作原理,包括版本协商、算法协商、密钥交换、用户认证和会话交互阶段。此外,还讲解了Python中的Paramiko模块,它是SSHv2协议的实现,支持口令和公钥认证,可用于安全的远程命令执行和文件传输。在实践中,使用Paramiko进行SSH连接和操作将是网络自动化的重要工具。
摘要由CSDN通过智能技术生成

目录



前言

面对越来越复杂的业务需求及网络架构,网络自动化开始不断普及和演进以使得运维高效敏捷。目前,SSH登录设备是工程师最为熟悉的远程管理方法,因此,工程师有必要学习及使用一种自动化工具去实现SSH远程登录设备,模拟运维人员人机交互等,自动传输文件等功能。
本实验中我将使用Python工具,调用Python中的Paramiko模块编写自动化脚本实现基于SSH的初级网络自动化动作。


一、SSH介绍

1.简介

SSH(Secure Shell,安全外壳协议)是一种用于在不安全网络上进行安全远程登录和实现其他安全网络服务的协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录或文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多的安全隐患。随着人们对网络安全的重视,这些方式已经慢慢不被接受。SSH协议通过对网络数据进行加密和验证,在不安全的网络环境中提供了安全的登录和其他安全网络服务。作为Telnet和其他不安全远程shell协议的安全替代方案,目前SSH协议已经被全世界广泛使用,大多数设备都支持SSH功能。
SSH协议由三个组件构成:SSH传输层协议,SSH用户认证协议,SSH连接协议。
在这里插入图片描述

1.1 SSH传输层协议

SSH传输层协议是一个安全传输协议。SSH传输层通常建立在TCP/IP连接上,但也可以在任何其他可靠的数据流上建立。
SSH传输层协议协商了所有的密钥交换算法、公钥算法、对称加密算法、消息认证算法等。

1.2 SSH用户认证协议

SSH用户认证协议为服务器提供客户端的用户鉴别。它运行在传输层协议上。
SSH用户认证协议提供两种认证方法:口令认证和公钥认证
口令认证:客户端通过用户名和密码登录到服务器,完成用户认证。
公钥认证:服务器通过公钥解密客户端的数字签名,完成用户认证。

1.3 SSH连接协议

SSH连接协议将加密的会话连接多路复用成若干个逻辑通道,它提供了交互式登录会话,远程执行命令,TCP/IP连接转发和X11连接转发等功能。所有通道都复用一个会话连接。
SSH连接协议在SSH传输层和SSH用户认证协议之上运行。
在这里插入图片描述
TCP/IP连接转发能够将其他TCP端口的网络数据通过SSH通道来转发,并保证了安全性。
Telnet、SMTP、IMAP和其他一些基于TCP/IP的不安全协议都可以通过SSH转发变得安全,避免了用户名,密码以及隐私信息的明文传输。此外,如果防火墙限制了一些网络端口的使用,但是允许SSH的连接,可以通过SSH TCP/IP连接转发进行通讯。
X11中的X是X协议,11是X协议的第11个版本。Linux的图形化界面,底层都是基于X协议。当需要与linux服务器上的图形化应用程序进行远程交互时,一种加强通讯安全的方法就是使用SSH通过X11隧道转发,将图形界面投射到客户端本地。
会话是程序的远程执行。程序可以是shell、应用程序、系统命令或一些内置的子系统。多个会话通道可以同时处于活动状态。交互式登录会话可以是invoker_shell()方法,远程执行命令可以是exec_command()方法,后文会详细介绍。

2.工作原理

在这里插入图片描述

在整个通讯过程中,为实现SSH的安全连接服务器端客户端要经历如下五个阶段

  • 版本协商阶段:SSH目前包括SSH1和SSH2两个版本,双方通过版本协商确定使用的版本。
  • 算法协商阶段:SSH支持多种加密算法,双方根据本端和对端支持的算法,协商出最终使用的加密算法。
  • 密钥交换阶段:通过密钥交换算法生成会话密钥,此后双方的会话均通过会话密钥加密。
  • 用户认证阶段:SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证。
  • 会话交互阶段:认证通过后,服务器端和客户端进行信息的交互。

2.1 版本协商阶段

客户端和服务器交互SSH版本协商报文,确定V1或V2版本。
在这里插入图片描述
服务端打开端口22,等待客户连接。 客户端向服务端发起TCP连接,双方完成握手并建立连接。 客户端向服务端发送第一个报文,包括版本标志字符串,格式为 “协议版本号 次协议版本号 软件版本号”。 服务端收到报文后,解析协议版本号,如果客户端的协议版本号比自己的低,且服务端能支持客户端的低版本,就使用客户端的协议号,否则使用自己的协议版本号。

2.2 算法协商阶段

客户端和服务器交互自己支持的算法列表,该列表包括四种算法的具体算法名称。
在这里插入图片描述
算法协商过程为:从客户端的算法列表取出第一个算法,服务器在自身的算法列表中查找,若匹配上相同的算法,则协商成功,继续协商下一种算法;否则继续从客户端的该种算法列表中取出下一个算法,在服务器端的算法列表中匹配,直到匹配成功。

2.3 密钥交换阶段

根据密钥交换算法,双方动态地产生会话密钥用于后续会话加密。会话密钥无法被第三者截获,安全可靠。
在这里插入图片描述
客户端和服务器首先约定两个公开的质数p和g。
客户端和服务器各自随机产生一个数Xc,Xs,作为自己的私钥。
各自计算出自己的公钥Yc,Ys。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值