ssh远程登陆脚本(带跳板机)
mac自带的终端不太好用,被推荐了一个iterm2的终端替代工具,确实比自带的终端好用不少。下面记录下通过脚本一键远程登录的过程:
下载地址:http://m4.pc6.com/xuh3/iTerm2.zip
首先,准备好登陆脚本
#!/usr/bin/expect -f
set user xxx
set host 127.0.0.1
set port #如果是默认端口可以不指定
set password xxx
set timeout - spawn ssh -p $port $user@$host
expect "*assword:*"
send "$password\r" expect "*xxx*"
send "./brige\r"
expect "*password*"
send "xxx\r" expect "*xxx*"
send "./login\r"
expect "*password*"
send "xxx\r" interact
expect eof
这里解释一下: xxx都是用户名或者密码
很重要的一点,这里其实做了三个层次的登陆,要特别注意,登陆了第一层之后,就不可以直接用send语句或者spawn发送登陆命令了,至于为什么搞不懂,
现象是会卡在这一步,不会出现输入密码的提示符。
因此,从第二层机器开始,都要新建一个脚本,只需要一行代码: ssh user@host,就可以了,然后通过send './login\r',通过send来发送执行这个登陆脚本等命令,这样就不会卡在那里。
当然,如果没有跳板机,只有一层登陆的话,就不需要这么麻烦了,直接通过spawn执行登陆命令即可。
然后这个expect命令解释一下,expect "*root*"表示等待出现带有root的提示符,否则阻塞在这一行,支持*通配符,因此这个可以自己定义。监听到出现了期望的字符串时,即继续执行下一行脚本。
最后一个要主意的就是最后两行
interact
  expect eof
这两行一定不能少,放在最后就可以了。
准备好了脚本之后,iterm2的设置很简单。
Profiles->open profiles->Edit profiles
点击左下方的加号,新增一个链接,填一下name,然后下面选择command,command填入刚刚准备好的脚本的路径。

ssh远程登陆脚本(带跳板机)的更多相关文章
- [转] SSH免密码登陆以及穿越跳板机
		
原文链接:http://www.cnblogs.com/lucantang/p/3315329.html SSH免密码登陆以及穿越跳板机 1. 免密码直连 [user@hostA ~] $ssh ...
 - CentOS6无法本地登陆,ssh远程登陆没问题
		
CentOS6无法本地登陆,ssh远程登陆没问题---使用CentOS自带的rsyslog分析调试 Apr 21 14:15:27 raccontroller init: tty (/dev/tty1 ...
 - SSH 远程登陆
		
2019-03-10 20:41:39 一.什么是SSH 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登 ...
 - ubuntu19配置静态IP并开启SSH远程登陆
		
前言 从ubuntu从17.10开始,已经不再在/etc/network/interfaces里配置IP,即使配置了也不会生效,而是改成netplan方式 ,配置写在/etc/netplan/文件夹 ...
 - linux系统新建用户ssh远程登陆显示-bash-4.1$解决方法
		
linux系统新建的用户用ssh远程登陆显示-bash-4.1$,不显示用户名路径 网络上好多解决办法,大多是新建.bash_profile文件然后输入XXXXX....然而并没有什么用没有用.... ...
 - 树莓派3b+ Ubuntu 16.04 MATA系统 ssh远程登陆后修改主机名、用户密码和用户名
		
写在前面: 刚刚开始写博客,记录下自己的学习过程,备忘. 最近在使用树莓派做智能小车的开发,使用的是树莓派3b+,安装的是Ubuntu 16.04 MATA 系统,安装系统后需要修改主机名,登陆密码以 ...
 - Linux服务器开启ssh服务,实现ssh远程登陆!
		
最近在学linux,使用ssh远程登陆linux,记录下来! 首先进入/etc目录下,/etc目录存放的是一些配置文件,比如passwd等配置文件,要想使用ssh远程登陆,需要配置/etc/ssh/s ...
 - linux系统新建用户ssh远程登陆显示-bash-4.1$解决方法,ssh-bash-4.1
		
linux系统新建的用户用ssh远程登陆显示-bash-4.1$,不显示用户名路径 网络上好多解决办法,大多是新建.bash_profile文件然后输入XXXXX....然而并没有什么用没有用.... ...
 - 很好用的取代 PuTTY 的SSH远程登陆软件 Termius
		
一直以来, 我都是用 PuTTY 一个窗口一个窗口来监视我所有的远程服务器. putty-connections-on-a-screen 总感觉非常的不方便, 特别是当远程链接断开需要再重新打开PUT ...
 
随机推荐
- top后台执行显示:top: failed tty get 错误
			
通过其他程序或脚本在非交互式模式下调用top命令,经常会出现: top: failed tty get 错误 解决办法:加个-b 选项皆可 -b : Batch mode operation ...
 - jenkins乱码解决问题
			
1.jenkins控制台线上乱码解决 系统管理——系统设置,添加编码环境变量 zh.CH.UTF-8 2.java启动后,tomcat日志显示乱码,原因是环境变量没有带过去,因此shell脚本头部需要 ...
 - redis分页摘抄
			
Redis 笔记与总结8 PHP + Redis 信息管理系统(分页+好友关注) 分页 要对列表页进行分页,需要知道: ①用户总数 $count ② 页大小 $pageSize:用户自定义 ③ 当前页 ...
 - Java list 转字符串并加入分隔符的方法
			
import org.apache.commons.lang.StringUtils; List<String> list=new ArrayList<String>(); l ...
 - Android/Linux Thermal框架分析及其Governor对比
			
图表 1 Thermal框架 随着SoC性能的快速提升,功耗也极大提高,带来的负面影响是SoC的温度提高很快,甚至有可能造成物理损坏.同时功耗浪费也降低了电池寿命. 从上图可知,Thermal框架可以 ...
 - 从PyMongo看MongoDB Read Preference
			
在CAP理论与MongoDB一致性.可用性的一些思考一文中提到,MongoDB提供了一些选项,如Read Preference.Read Concern.Write Concern,对MongoD ...
 - SQL Server的JOIN是支持使用小括号修改执行顺序的
			
假如现在我们的SQL Server数据库中有三个表:[T_A].[T_B]和[T_C],它们的建表语句如下: --建表语句[T_A] CREATE TABLE [dbo].[T_A]( [ID_A] ...
 - Vue-项目打包上线
			
一.打包生成dist目录 运行npm run build 进行打包,控制台显示“Build complete”表示打包完成了. npm run build 二.dist目录放到后端跟目录 打包后生成一 ...
 - ORA-01578 data block corrupted 数据文件损坏 与 修复 (多为借鉴 linux)
			
好吧,先说说造成崩溃的原因: 使用redhat 5.9 Linux 作为数据库服务器, 周五数据库正在使用中,硬关机造成数据库文件部分损坏(周一上班时,应用程序启动不起来,查看日志文件时,发现一个数据 ...
 - easyui-tab标签
			
一. 加载方式 //class 加载方式<div id="box" class="easyui-tabs" style="width:500px ...