Multithreaded_SSH V0.1.1

前言

最近换了一批华为交换机,为了过等保改用SSH远程交换机,之前写的Telnet脚本用不了了, 于是最近花了点时间用Python重新写了一个多线程SSH程序 Multithreaded-SSH。

此版本还是不太灵活,但是可以执行一些基本的命令。例如可以执行dis cur配合sshlog文件做到备份设备配置,或者上线初期批量修改配置等操作。

代码已开源在👉Github

也打包了一个.exe可执行文件。有需要的自己下载。

使用pyinstaller打包的可执行文件,不知道为什么360会报毒,如果不放心就自己打包。

使用说明

  1. 确保程序同目录下有两个文件host.txtcommands.txt顾名思义,一个放置远程主机的地址(每行一个),另一个放置要执行的命令(每行一条)

  2. 确保程序有创建目录和文件的权限,程序执行后会创建两个目录和数个日志文件

    • log
      • 年-月-日.log
      • Paramiko-年-月-日.log
    • sshlog
      • 年-月-日-主机地址.log

    年-月-日.log用于保存本程序输出的日志,你可以在这里看到本程序的执行情况

    Paramiko-年-月-日.log储存Paramiko执行的日志用于ssh连接出现异常调试

    年-月-日-主机地址.log用于储存ssh连接到主机后每台主机输出的内容

  3. 打开程序后会提示输入设备密码,密码输入时不会显示在终端。

  4. 程序运行时会实时输出一些信息及总结,但是设备多的时候会比较乱,可以结束后看程序日志。

注意

  • 目前版本的程序v0.1.1命令执行完成只能以<设备名或者[设备名提示符作为中断判断,主要为了适配华为等品牌网络设备。 如果某条命令执行后60秒(默认时间)不回到提示符程序判定命令执行失败。例如你要执行的命令执行后有需要输入y等,目前只能将组合命令放在一行里,如save \n y 用\n代表回车,如有其他需求请自行修改判断代码, 或者等后续版本(后面有更新计划)。
    信息
    按y确认在某些设备上超时时间是30秒,30秒后会自动取消回到提示符,然后被程序捕获,此时程序会认为命令执行成功。 所以请在程序执行后检查sshlog日志确认。

更新计划

预计在2到3周内更新:

  • 增加分别定义单台主机命令
  • 增加分别定义每条命令终止符以适配更多场景和设备
  • 代码更加模块化 使其更易于被其他程序调用和集成
  • 优化代码逻辑
  • 完善代码备注

不会更新的内容:

  • 自动读取密码
    • 目前是程序每次执行都需要输入设备密码,以后也是。因为没有想到完美的密码存储方式。自动读取用户名也许会加

结语

本人还在编程新手村晃荡 代码写的很烂,欢迎在下方评论区交流,或者直接在Github上提交问题(issues)。

如果觉得本程序还不错,可以在下方点个👍也可以去Github点个⭐,感谢支持。

0%