ssh远程登陆脚本(带跳板机)

Posted 夏笑声

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 22 #如果是默认端口可以不指定
  set password xxx
  set timeout -1

  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远程登陆脚本(带跳板机)的主要内容,如果未能解决你的问题,请参考以下文章

跳板机脚本(粗糙版)

jmeter连接配置带跳板机(SSH)的mysql服务器

mysql ssh 跳板机(堡垒机???)连接服务器

跳板机搭建

ssh配置跳板机-带密钥

xshell怎么登陆到跳板机命令