堡垒机ssh连接-vbs方式

发布时间 2023-06-20 15:46:51作者: God-slayer

公司使用堡垒机作为连接开发、生产环境机器的工具,本来之前一直使用xshell 工具作为连接工具,后来由于xshell公司发了律师函,不允许公司破解使用,因此需要找一些替代的开源工具连接堡垒机。

目前我用过最好用的应该是MobaXterm(可命令,也可直接下载文件),推荐大家使用。但是我的电脑(win11系统)安装后,总是出现一些奇奇怪怪的问题(同事电脑使用良好),因此索性不用任何工具,直接使用dos窗口,ssh命令连接堡垒机。

但是回到之前的问题,使用ssh命令每次需要手动敲堡垒机地址,以及密码(用dos之前我要敲密码,用dos之后我还要敲密码,那我特么不白用dos了)。因此在想有没有一种方式,能直接通过脚本运行好了

首先想到的是使用.bat脚本,但是一直解决不了连接堡垒机器后,在下一行命令中输入密码的问题,所以放弃了。后来查询资料,使用vbs脚本可以解决这一问题,于是拿来使用下,发现可以,此处分享下脚本代码。

Option Explicit
Dim choice
choice = InputBox("请选择环境:" & vbNewLine & "1 - 开发环境" & vbNewLine & "2 - 生产环境")

Select Case LCase(choice)
  Case "1"
    dev()
  Case "2"
    prod()
  Case Else
    dev()
End Select

Function dev()
    Dim WshShell 
    Set WshShell=WScript.CreateObject("WScript.Shell") 
    WshShell.Run "cmd.exe"
    WScript.Sleep 500 
    WshShell.SendKeys "ssh xxx@192.168.1.1 -p 22"
    WshShell.SendKeys "{ENTER}"
    WScript.Sleep 500 
    WshShell.SendKeys "xxxxxx"
    WshShell.SendKeys "{ENTER}"
End Function

Function prod()
    Dim WshShell 
    Set WshShell=WScript.CreateObject("WScript.Shell") 
    WshShell.Run "cmd.exe"
    WScript.Sleep 500 
    WshShell.SendKeys "ssh xxx@jms.server.com -p 22"
    WshShell.SendKeys "{ENTER}"
    WScript.Sleep 500 
    WshShell.SendKeys "xxxxxx"
    WshShell.SendKeys "{ENTER}"
End Function

代码解释:

  1. xxx是你登录堡垒机的用户名,端口以自己的堡垒机机器情况为定,有可能是22,有可能是其他
  2. xxxxxx是当前用户名登录的密码
  3. 输入框选1是开发环境,输入框选2是生产环境,如果文本框什么都没输入,就默认是开发环境登录

1.操作记录

img