公司使用堡垒机作为连接开发、生产环境机器的工具,本来之前一直使用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
代码解释:
- xxx是你登录堡垒机的用户名,端口以自己的堡垒机机器情况为定,有可能是22,有可能是其他
- xxxxxx是当前用户名登录的密码
- 输入框选1是开发环境,输入框选2是生产环境,如果文本框什么都没输入,就默认是开发环境登录
1.操作记录