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 [email protected]$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 [email protected],就可以了,然后通过send ‘./login\r‘,通过send来发送执行这个登陆脚本等命令,这样就不会卡在那里。

当然,如果没有跳板机,只有一层登陆的话,就不需要这么麻烦了,直接通过spawn执行登陆命令即可。

然后这个expect命令解释一下,expect "*root*"表示等待出现带有root的提示符,否则阻塞在这一行,支持*通配符,因此这个可以自己定义。监听到出现了期望的字符串时,即继续执行下一行脚本。

最后一个要主意的就是最后两行

interact
expect eof

这两行一定不能少,放在最后就可以了。

准备好了脚本之后,iterm2的设置很简单。

Profiles->open profiles->Edit profiles

点击左下方的加号,新增一个链接,填一下name,然后下面选择command,command填入刚刚准备好的脚本的路径。

时间: 2024-12-22 03:28:05

ssh远程登陆脚本(带跳板机)的相关文章

SSH 远程登陆

2019-03-10 20:41:39 一.什么是SSH 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露. 最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑.1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置. 需要指出的是,

模拟PIX804外网访问内网DMZ服务器以及ssh远程登陆

实验环境: 一台centos搭建 lnmp,做为DMZ内网服务器 swtich三层交换机连接linux web 与 pix804 router是路由连接pix与win7 ip规划 switch      vlanif 100       192.168.1.1/24     vlanif100 to DMZ linux web      eth0       192.168.1.3/24     eth0 to vlanif100 pix      Ethernet1       192.168

redhat root账号 SSH远程登陆不上处理记载

修改 服务器ssh服务的配置文件 /etc/ssh/sshd_config 1).permitRootLogin yes  注释:允许root登陆 2).AllowUser root             注释:允许root用户使用ssh远程登陆 2. service sshd restart  重启 ssh服务 加载修改的配置文件 3.service iptables stop 关闭 防火墙或允许对ssh服务程序22端口的访问

ssh远程登陆缓慢的解决办法

使用ssh远程登陆虚拟机突然变得很卡!这个原因一般是由于ssh配置文件里启动了DNS功能造成的!只需要将UseDNS这一功能给关闭即可(默认是打开此功能的) 重启ssh服务

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

jmeter连接配置mysql服务器时,如果数据库服务器没有通过ssh连接,则只需要配置相应的jdbc参数就可以了,即请求域名或ip地址:3306,如果数据库服务器是通过SSH连接的,那需要通过中间远程连接工具来登录,此处使用的远程连接工具为Putty,配置的时候需要将数据库的ssh->tunnel中的请求域名先映射到本地3306的端口(一般mysql的请求端口设置为3306,只是符合大众流~~~),然后通过ssh的服务器ip及端口来访问,具体的配置请参考如下: 1.首先,下载并打开Putty喽

使用 Python ssh 远程登陆服务器的最佳方案

首发自公.众.号:Python编程时光 在使用 Python 写一些脚本的时候,在某些情况下,我们需要频繁登陆远程服务去执行一次命令,并返回一些结果. 在 shell 环境中,我们是这样子做的. $ sshpass -p ${passwd} ssh -p ${port} -l ${user} -o StrictHostKeyChecking=no xx.xx.xx.xx "ls -l" 然后你会发现,你的输出有很多你并不需要,但是又不去不掉的一些信息(也许有方法,请留言交流),类似这样

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 “*<服务器名>*" {se

Centos 集群配置SSH免登陆脚本

首先编写脚本生成集群服务器列表: hostsList.sh #!/bin/bash preIp="11.11.225." pwd="dyj2017" for i in `seq 2 80`; do echo -e $preIp$i $pwd >> hostsLists.txt done hostsLists.txt 11.11.225.2 dyj2017 11.11.225.3 dyj2017 11.11.225.4 dyj2017 .... 11.11

SSH远程执行脚本tomcat未启动

背景: 在本地写好重启tomcat的脚本后,本地执行脚本没有问题,但在远程服务器上SSH免密登录执行后. 发现可以把TOMCAT杀死,但tomcat却起不来.这个问题困扰了我一天.终于解决了,决定写篇博文 与大家分享. 把我遇到的怪异现象分享给大家: 1 脚本执行了吗?sh -x 查看脚本执行过程,确实执行了啊,也没有报错.但到目标服务器去看没有java 进程也没有相应的端口.邪门了,到底是什么原因呢? 2 看日志.在远程执行脚本的时候就把日志打开了,tail -f 发现没有一丁点的日志输出.