SecureCRT 在 Debian 上的脚本编写技巧
一 语言与运行方式
- 可用脚本语言包括 VBScript、Python、Perl、JScript;脚本头部需声明语言与接口版本,例如:
VBScript 使用 $language = “VBScript” 与 $interface = “1.0”;JScript 使用 $language = “JScript” 与 $interface = “1.0”。
- 运行方式有三种:
- 菜单或工具栏直接运行脚本;
- 在会话属性中配置“启动命令”自动执行脚本;
- 使用“脚本录制与回放”先录制操作再回放,适合快速生成脚本雏形。
- 在 Debian 上,SecureCRT 提供 Linux 版本,脚本 API 与 Windows 版一致,可直接在 Linux 桌面环境中编写与执行。
二 连接与会话管理
- 连接命令可直接在脚本里发起,例如:
- SSH2 直连:crt.Session.Connect(“/SSH2 user@192.0.2.10”);
- 在新标签页打开:crt.Session.ConnectInTab(“/SSH2 user@192.0.2.10”)。
- 多标签与窗口管理:获取标签页对象 crt.GetTab(n),可 Activate 激活、Clone 复制标签,便于并行批量操作。
- 连接前建议等待终端就绪:用 crt.Screen.WaitForCursor(1) 检测光标稳定,再发送登录信息,提升稳定性。
三 稳定输出与分页处理
- 开启同步模式:crt.Screen.Synchronous = True,可减少输出错位与撕裂。
- 精准等待提示符:用 crt.Screen.WaitForString(“>”)、WaitForString(“#”) 等匹配设备提示符,避免盲目 Sleep。
- 处理分页(如 “–More–” 或 “---- More ----”):用 WaitForStrings 同时等待多个关键字,命中后发送空格继续,命中结束符后跳出循环。
- 读取输出:用 crt.Screen.ReadString(“prompt”) 获取命令结果,便于后续解析与断言。
四 批量执行与日志审计
- 批量执行:从 CSV/TXT 读取 IP、用户名、密码 等清单,循环 ConnectInTab 并在每个会话中执行命令;配合 WaitForString 控制节奏。
- 日志规范:为每次会话生成带时间戳的日志文件名,例如 2025-12-12-10-00-00_192.0.2.10.log,并在会话开始时开启 crt.Session.Log(True),便于审计与回溯。
- 交互增强:结合 crt.Dialog.Prompt/MessageBox 做参数输入与关键步骤二次确认,降低误操作风险。
五 安全与排错建议
- 认证方式:优先使用 SSH 密钥认证,在 SecureCRT 中配置公钥,避免脚本中硬编码或传递明文密码;必要时再使用密码并妥善保护。
- 连接失败排查:若提示 “The remote system refused the connection”,在目标 Debian 上确认已安装并启动 OpenSSH Server(如:sudo apt-get install openssh-server;检查 sshd 进程;必要时重启服务),并核对端口与网络连通性。
- 脚本健壮性:使用 On Error Resume Next / On Error Goto 0 做容错;关键节点打印调试信息;对文件、会话状态做存在性与连通性校验;对分页与提示符变化建立“多分支”等待逻辑。