注:本教程也适合用xshell的,但是命令稍微有变,想看详情直接去最后。
公司对内网机器稍微有些安全意识的话,会采用跳板机的方式让你登录远程服务器。
所谓跳板机(也叫堡垒机),就是登录所有线上服务器的方式,不是ssh直连,而且你需要先直连到某一台机器A,然后在那台机器ssh到线上具体要操作的服务器B上。而直接访问B机器是访问不了的。
但是线上有很多机器的话,你要每次都登录到跳板机A上之后,每次手动输入命令登录到具体机器,那样好麻烦。机器一多,光连接机器都烦的不行。这时候就是登录脚本的作用了。
登录脚本可以直接录制,方法就是点击“脚本——开始录制脚本”,接下来开始登录机器,等登录完之后,再点击“脚本——停止录制脚本”,这时候把脚本保存下来就可以了。
当然,除了录制,你也可以直接自己编写脚本,或者在录制的脚本基础上直接修改脚本。有100台机器,你不可能把所有机器的登录都录制一遍吧,直接录制一个,笨点的就是手动修改里面的ip、密码,好点的方式就是写个程序复制和修改这些文件。
下面介绍一下SecureCRT脚本的基本命令。
先来看个我写好的脚本a.vbs,给大家一点点讲解,其实是个vb代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub Main crt.Screen.Synchronous = True '登录100.100.100.100 crt.Sleep 2000 'crt.Screen.WaitForString "$" crt.Screen.Send "ssh root@100.100.100.100" crt.Screen.Send VbCr crt.Screen.WaitForString "assword:" crt.Screen.Send "abcde" crt.Screen.Send VbCr crt.Screen.Synchronous = False End Sub |
首先Main应该是个执行方法,类似java执行的main方法,这个没什么好说的。
crt代表主进程,我们用的都是crt的内置对象操作。
crt.Screen代表屏幕,用来操作屏幕输入输出流。
crt.Screen.Synchronous这段是用来设置同步模式,防止丢失对象,接下来就是重头戏了。
以带引号开头的,标识这行是注释。
crt.Sleep代表等待,后面时间单位为毫秒,这里有时候如果访问跳板机之后出现一大堆介绍,可以用这个命令,让后面的程序等待一下,不然可能后面程序有时候执行不好,没法等待到字符。当接收到的内容比较多的时候,就可以用这个让这些内容走走。
crt.Screen.WaitForString "$"这行被注释掉了,原因就是有时候上面提示的内容太多了,没法等到这个$符号。这行本身命令的意思就是等到出现这个字符的时候,执行下面的命令。
crt.Screen.Send向屏幕发命令,这里发的命令就是我们的ssh登录具体机器的命令了。
crt.Screen.Send VbCr这里的VBCr意思是回车,也就是上面命令执行完了,再向屏幕发个回车命令。chr(13)也是这个意思。
下面的就简单了,意思是等到密码提示出现了输入密码、回车。这里因为不知道P会大写还是小写,干脆就把P忽略了,哈哈。
最后再把模式改回去,完事~
上面这些命令就是我们登录脚本常用的命令了,当然crt包括ActivePrinter(打印机),Dialog,Screen,Session(会话),Version,Window(窗口)这些二级对象,操作有Sleep,Quit。有兴趣可以深入研究。
写好这些脚本之后,直接去crt中右键会话,左侧选择“连接——登录动作”,在登录脚本一行选择脚本,打上勾,这样登录到跳板机就会直接登录到具体服务器啦。
下面简单介绍下xshell的登录脚本命令,xshell常用命令和crt一模一样,只不过把crt改为xsh就行了,比如xsh.Screen.Send,它一样是个vb脚本。
©原创文章,转载请注明来源: 赵伊凡's Blog
©本文链接地址: SecureCRT 录制或编写登录脚本