iTerm 使用expect实现自动远程登录,登录跳板机

#!/usr/bin/expect

set timeout 10
spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]
expect {
        "(yes/no)?"
        {send "yes\n";exp_continue}
        "password:"
        {send “<password>\n"}
}
expect “*<服务器名>*" {send "ssh [lindex $argv 3]@[lindex $argv 4]\n"}
expect "*password:" {send "[lindex $argv 5]\n"}
#expect eof
interact

在mac上使用iTerm连接服务器,不能保存密码,通过expect脚本来实现自动密码输入

一般公司内部只能通过跳板机登录,通过上面的脚本可以实现连续登录 ,具体的iTerm配置参考网上其它教程

通过expect脚本还可以实现更复杂的自动化运维

参考:

http://blog.csdn.net/leexide/article/details/17485451

http://blog.csdn.net/ofengyajie/article/details/17840751

时间: 2024-11-09 08:13:57

iTerm 使用expect实现自动远程登录,登录跳板机的相关文章

ssh采用expect实现自动输入密码登录、拷贝

1. 引言 最近做了一个项目,需要频繁与另一台主机进行文件的传输:中间想到了很多方式:FTP.samba.curl等,但是还是感觉scp最好用. SCP使用教程可参阅:http://www.jb51.net/article/70919.htm 但scp也存在着一些问题,每次都需要输入目标机的密码,需人为手动干预,这个就比较烦了,那么有没有可以自动进行界面交互的命令呢? 答案当然是:有: expect喽 except使用教程:https://www.cnblogs.com/lixigang/art

Linux expect实现自动登录

expect expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令.当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令.但当不能使用密钥验证的时候,我们就没有办法了.所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和远程命令. 引言 目前在公司是一人一台虚拟机,大多数工作都要在虚拟机上完成,为此每天要执行很多次[ssh [email protected]]指令登录虚拟机:有很多方式解决这个问题,如使用xshell.secureCRT

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

使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下: ############################################## #!/usr/bin/expect set timeout 30 spawn ssh -l username 192.168.1.1 expect "password:" send "ispass\r&

自动远程登录执行命令

1.自动登录问题,在不考虑秘钥文件情况下想登录远程设备,必须提供ip地址,用户名和密码三个信息,通过telnet或ssh进行登录,可在telnet或ssh的命令中并未找到可指定password的地方. C:\>telnet -h telnet [-a][-e escape char][-f log file][-l user][-t term][host [port]] -a      企图自动登录.除了用当前已登陆的用户名以外,与 -l 选项相同. -e      跳过字符来进入 telnet

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

#!/usr/bin/expect -f #设置超时时间 set timeout 3 #这里设置了跳板机的密码 set password "你的跳板机密码" #连接跳板机 spawn ssh 用户名@跳板机IP #如果返回的内容包含*yes/no*,发送yes expect "*yes/no*" {send "yes\n"} #如果返回的内容包含"*password*",发送你设置的密码+\r(PS.这里的\r一定要加,是回车

mac使用expect自动登录跳版机

痛点:MAC登录跳版机,每次都要输入用户名和密码选择服务器后,比较繁琐. 解决:发现expect很好用,share一下,下面是工作中真实使用的脚本. 前提:安装expect 1 # expect交互的脚本 2 #!/usr/bin/expect 3 4 # 连接跳板机 5 spawn ssh -p2222 [email protected] 6 7 # 如果返回的内容包含*yes/no,发送yes并且换行 8 expect { 9 "*yes/no" {send "yes\r

windows下使用远程工具登录虚拟机上的Linux、访问虚拟机上的服务 、端口转发、win7 telnet登陆虚拟机

首先要清楚virtual box如何设置端口转发: 一篇文章: 如何使用VirtualBox进行端口转发 由于默认的方式是用NAT来做虚拟机网络的,因此如果从外网想访问虚拟机的应用会比较麻烦.以前一直用桥接的方式,但IP有限,自己指定的IP可能会和局域网的IP冲突,而用DHCP方式获取的IP又可能会发生变化导致不确定,怎么办?网上查了一下,简单有效的解决方法就是用VirtualBox的“端口映射”功能.下面结合实例来讲讲怎么操做: 应用场景:要将虚拟机的Web 80端口从外面能访问到. 1. 首

浅谈编译kernel+busybox构建拥有远程ssh登录和web功能最小linux系统

实验环境win7+VM11.1 本文的源码的版本了 dropbear-2013.58.tar.bz2    busybox-1.21.1.tar.bz2 linux-3.13.6.tar.xz  nginx-1.4.7 大致过程总揽 1,硬件准备以及查看硬件设备型号(不用担心,这些都是VM虚拟出来的) 2,编译环境的配置以及下载内核源码以及编译内核 3,编译busybox,以及提供系统正常运行的配置文件,初步运行linux系统 4,编译安装dropbear提供ssh服务 5,安装nginx:提供

CentOS禁用本地root和远程ssh登录

某天为解决su切换慢的问题,黄哥修改了一个加载脚本,导致普通用户无法切换root用户,su输入密码后登录还是普通用户.当初设置禁止root登录时,未给某个特定用户增加sudo权限,导致现在所有程序无法使用(telnet服务同样被禁止了).最后通过将该系统盘挂载到另外一台服务器上,将脚本改回为原来状态解决问题. 正常后登录服务器检查CentOS使用版本为6.4,因数据安全要禁用root本地和远程ssh登录,只给普通用户权限. 禁止root本地登录 修改配置/etc/pam.d/login,增加如下