#!/usr/bin/expect -f
#设置超时时间
set timeout
#这里设置了跳板机的密码
set password "你的跳板机密码"
#连接跳板机
spawn ssh 用户名@跳板机IP #如果返回的内容包含*yes/no*,发送yes
expect "*yes/no*" {send "yes\n"}
#如果返回的内容包含"*password*",发送你设置的密码+\r(PS.这里的\r一定要加,是回车操作的意思。。。在网上搜了好多没有说明,一直以为是换行,没有加这个,结果一直执行不成功)
expect "*Password:*" {send "$password\r;"}
#登录跳板机成功,如果返回的内容包含"*你的跳板机的名称*",发送连接测试机的命令
expect "*能匹配跳板机名称的字符串*" {send "ssh 测试服务器的用户名@测试服务的IP\r";}
#同上面一样。。。注意interact是留在测试机上,给用户控制权限,如果不写会直接退出
expect "*Password:*" {send "你的密码\r";interact}
#保存为 login.sh 执行 expect login.sh
#终于不用手输两次密码了.....
首先MAC要安装expect( brew install expect),然后,编写上面的脚本文件保存,
保存为 login.sh 执行 expect login.sh
终于不用手输两次密码了.....

防止超时掉线的代码:

#!/usr/bin/expect -f
#首先MAC要安装expect( brew install expect),然后,编写下面的脚本文件保存
#设置超时时间
set timeout
#这里设置了跳板机的密码
set password "xxxxxx"
#连接跳板机
spawn ssh xxx #如果返回的内容包含*yes/no*,发送yes
expect "*yes/no*" {send "yes\n"}
#如果返回的内容包含"*password*",发送你设置的密码+\r(PS.这里的\r一定要加,是回车操作的意思。。。在网上搜了好多没有说明,一直以为是>换行,没有加这个,结果一直执行不成功)
expect "*word:*" {send "$password\r;"}
#登录跳板机成功,如果返回的内容包含"*你的跳板机的名称*",发送连接测试机的命令
expect "*login*" {send "ssh xxxt@xxxxx\r";}
#同上面一样。。。注意interact是留在测试机上,给用户控制权限,如果不写会直接退出
expect "*word:*" {send "$password\r";
#interact}
interact {
timeout {send "\x20"}
}
}
#保存为 login.sh 执行 expect login.sh
#终于不用手输两次密码了.....

ssh跳板登陆太麻烦,使用expect每次自动登录 利用expect 模拟键盘动作,在闲置时间之内模拟地给个键盘响应的更多相关文章

  1. 使用expect实现自动登录的脚本

    使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下: ######## ...

  2. expect实现自动登录

    自动登录主机(ssh) 建脚本item2login.sh,包含如下内容 #!/usr/bin/expect set timeout 30 spawn ssh -p [lindex $argv 0] [ ...

  3. shell中嵌套执行expect命令实例(利用expect实现自动登录)

    expect是 #!/bin/bashpasswd='123456'/usr/bin/expect <<EOFset time 30spawn ssh root@192.168.76.10 ...

  4. 分发系统介绍、expect脚本远程登录、expect脚本远程执行命令、expect脚本传递参数

    7月19日任务 20.27 分发系统介绍20.28 expect脚本远程登录20.29 expect脚本远程执行命令20.30 expect脚本传递参数 20.27 分发系统介绍 公司业务逐渐扩大时, ...

  5. Linux expect实现自动登录

    expect expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令.当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令.但当不能使用密钥验证的时候,我们就没有办法 ...

  6. expect命令自动登录ssh

    expect是简单的工具原因,依赖于tcl. 直接apt安装就行. 四个关键字: spawn,派生出新进程. expect,期待得到的字符串,可以模式匹配. send,向进程发送字符串. intera ...

  7. Linux使用expect实现自动登录的脚本

    前提条件服务器已经安装过tcl和expect, 若未安装:可以先执行 yum  install tcl  expect  进行安装 第一步.编写以下自动登录脚本login.sh ########### ...

  8. 用了一天的时间,linux下expect实现ssh自动登录服务器记,鄙视下网上各种抄来抄去残段子

    因为要对客户方的快30个项目进行特别有顺序的重启,所以不得不想办法写个脚本,网上看了不少段子.真是残缺的可以.没有一段是可以正常运行的.我来按顺序记录一下 脚本的本身 使用expect实现自动登录的脚 ...

  9. linux ssh 不用密码自动登录的几种方法

    1. 自动ssh/scp方法== A为本地主机(即用于控制其他主机的机器) ;B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;A和B的系统都是Linux 在A上运 ...

随机推荐

  1. Oracle sql 子字符串长度判断

    Oracle sql 子字符串长度判断 select t.* from d_table t ,) ,instr(t.col,; 字符串的前两位都是数字: select * from d_table t ...

  2. AJAX核心--XMLHttpRequest五步法

    引言: AJAX=异步Javascript + XML,AJAX是一种用于创建高速动态网页的技术. 开门见山: 解读:AJAX使用XHTML和CSS为网页表示.DOM动态显示和交互,XML进行数据交换 ...

  3. JDBC连接mysql时出现的ssl问题

    使用MySQL数据库时出现如下错误: WARN: Establishing SSL connection without server's identity verification is not r ...

  4. MVC 从View像Controller中传值

    在上一篇博客中总结了一下从Controller像View中传值的几种方法.事实上看那些方法和在我们最初学习VB的时候一样,将数据库中的数据显示到前台的页面.数据库还是那个数据库,仅仅是如今前台变成了浏 ...

  5. ORACLE里锁的几种模式

    0:none  1:null 空  2:Row-S 行共享(RS):共享表锁  3:Row-X 行专用(RX):用于行的修改  4:Share 共享锁(S):阻止其他DML操作  5:S/Row-X ...

  6. ORACLE 索引批量重建

    按用户批量重建索引: 按用户将此用户下面非临时表上面的索引全部重建,此过程建议在SYS用户下面执行: CREATE OR REPLACE PROCEDURE BATCH_REBUILD_INDEX(U ...

  7. HttpClient get和HttpClient Post请求的方式获取服务器的返回数据

    1.转自:https://blog.csdn.net/alinshen/article/details/78221567?utm_source=blogxgwz4 /*  * 演示通过HttpClie ...

  8. C++提高速度

  9. ing在写作中到底怎么用

    改关静留的作业中我还得改英文摘要.于是有个地方用了ing.顺便查了一下. http://www.yygrammar.com/Article/201408/3677.html -ing分词用作状语时有九 ...

  10. SSH框架下的多表增删改查

    下载地址:SSH框架下的多表增删改查 点击进入码云Git下载 点击进入CSDN下载 项目结构: 项目代码就不全部贴出来了,只贴下核心代码.需要项目的自己可以去下载. package com.atgui ...