目标就是使用python能够SSH登陆设备
拓扑图
Cloud1配置:我的虚拟网卡ip是5.5.5.5
交换机配置:
1.给vlan 1添加ip,已保证电脑与交换机的连通性
interface Vlanif1
ip address 5.5.5.10 255.255.255.0
确保给vlan 1 添加上ip后,打开电脑的cmd能够ping通5.5.5.10
2、开启stelnet服务,配置VTY用户界面 以AAA授权验证方式,优先级为15,指定只支持SSH协议
stelnet server enable
user-interface vty 0 4
authentication-mode aaa
user privilege level 15
protocol inbound ssh
3.创建本地用户python,密码为python@123,服务方式为SSH
aaa
local-user python password cipher python@123
local-user python service-type ssh
4.创建SSH用户,配置认证方式为密码认证.服务类型为stelnet,做完这一步,可以用Xshell、CRT、Moba等远程工具试试,看能不能连接上
ssh user python
ssh user python authentication-type password
ssh user python service-type stelnet
到这里交换机就基本就配置完成了
然后开始看python代码
python部分
import paramiko #所需模块
import time
ssh=paramiko.SSHClient() #实例化SSH
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #允许连接未知主机
ssh.connect(hostname='5.5.5.6',port=22,username='python',password='python@123',allow_agent=False,look_for_keys=False) #建立会话连接
cli=ssh.invoke_shell()#打开交互会话
##打开交互会话后可以相当于进入了cli界面了
# cli.send('命令') #就可以给交换机发送命令了
cli.send('screen-length 0 temporary\n')#取消分屏命令,默认是24行
cli.send('dis curr\n')#查看配置的命令
time.sleep(5)#暂停5秒
dis_cur=cli.recv(99999).decode()#实例化接收的数据,str类型
print(dis_cur)#可以将整个过程输出到控制台
ssh.close()#关闭ssh连接
控制台输出: