MACBOOK 通过iterm2连接堡垒机跳转服务器

  • 本公司是通过齐治堡垒机连接远程服务器的环境,因为连接过程中需要自动输入密码和选择主机,所以要使用expect工具,编写expect脚本
  • remote.exp 
#!/usr/bin/expect

if { $argc != 7 } {
    send_user "usage: expect $argv0 \[JUMP_HOST\] \[JUMP_PORT\] \[JUMP_USER\] \[JUMP_PASSWORD\] \[HOST\] \[USER\] \[PASSWORD\]\n\n\t"
    send_user "*JUMP开头\t是堡垒机的登录信息\n\t"
    send_user "*非JUMP开头\t是连接目标主机的登录信息."
    exit
}

set timeout 5

set jump_host [lindex $argv 0]
set jump_port [lindex $argv 1]
set jump_user [lindex $argv 2]
set jump_pswd [lindex $argv 3]
set host [lindex $argv 4]
set user [lindex $argv 5]
set pswd [lindex $argv 6]

# 连接堡垒机
spawn ssh -p$jump_port $jump_user@$jump_host
# 登录堡垒机
expect {
   "*(yes/no*)?" {
       send "yes\r"
       expect "*assword:"
       send "$jump_pswd\r"
   }
    # 接受到password输入密码
    "*assword:" {
        send "$jump_pswd\r"
    }
}
# 选择登录主机
expect {
    "*:" {
        send "$host\r"
    }
}
# 选择登录用户 1 是 any
expect {
     "*:" {
        send "1\r"
    }
}
# 输入主机用户
expect {
    "*login:" {
        send "$user\r"
    }
}
# 输入主机密码
expect {
    "*assword:" {
        send "$pswd\r"
    }
}

interact
  • 配置iterm2 profile
    • Send text at start: /Users/aaa/scripts/remote.exp 堡垒机ip 堡垒机ssh端口 堡垒机ssh用户 堡垒机ssh密码 跳转主机ip 跳转主机ssh用户 跳转主机ssh密码

  • 配置lrzsz
    • mac上传脚本,根据自己rz sz命令路径修改
  • recv
    cat /usr/local/bin/iterm2-recv-zmodem.sh
    
    #!/bin/bash
    # Author: Matt Mastracci (matthew@mastracci.com)
    # AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
    # licensed under cc-wiki with attribution required
    # Remainder of script public domain
    
    osascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTerm
    if [[ $NAME = "iTerm" ]]; then
        FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
    else
        FILE=`osascript -e 'tell application "iTerm2" to activate' -e 'tell application "iTerm2" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
    fi
    
    if [[ $FILE = "" ]]; then
        echo Cancelled.
        # Send ZModem cancel
        echo -e \\x18\\x18\\x18\\x18\\x18
        sleep 1
        echo
        echo \# Cancelled transfer
    else
        cd "$FILE"
        /opt/homebrew/bin/rz -E -e -b
        sleep 1
        echo
        echo
        echo \# Sent \-\> $FILE
    fi
  • send
    cat /usr/local/bin/iterm2-send-zmodem.sh
    #!/bin/bash
    # Author: Matt Mastracci (matthew@mastracci.com)
    # AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
    # licensed under cc-wiki with attribution required
    # Remainder of script public domain
    
    osascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTerm
    if [[ $NAME = "iTerm" ]]; then
        FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
    else
        FILE=`osascript -e 'tell application "iTerm2" to activate' -e 'tell application "iTerm2" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
    fi
    if [[ $FILE = "" ]]; then
        echo Cancelled.
        # Send ZModem cancel
        echo -e \\x18\\x18\\x18\\x18\\x18
        sleep 1
        echo
        echo \# Cancelled transfer
    else
        /opt/homebrew/bin/sz "$FILE" -e -b
        sleep 1
        echo
        echo \# Received $FILE
    fi

  • 配置Triggers

  • Regular expression: rz waiting to receive.\*\*B0100
                Action: Run Silent Coprocess
            Parameters: /usr/local/bin/iterm2-send-zmodem.sh
               Instant: checked
    
    Regular expression: \*\*B00000000000000
                Action: Run Silent Coprocess
            Parameters: /usr/local/bin/iterm2-recv-zmodem.sh
               Instant: checked

    * 如果是通过expect方式登录的服务器,需要做一下配置,写一个shell脚本加入               export LC_CTYPE=en_US

  • #!/bin/bash
    # $1 是expect脚本,其他的参数就是登录堡垒机和服务器的参数
    
    if [ $# -ne 8 ];then
        echo -e  "usage: $0 [EXPECT_SCRIPT_PATH] [JUMP_HOST] [JUMP_PORT] [JUMP_USER] [JUMP_PASSWORD] [HOST] [USER] [PASSWORD]\n\n\t"
        echo -e "*JUMP开头\t是堡垒机的登录信息\n\t"
        echo -e "*非JUMP开头\t是连接目标主机的登录信息."
        exit
    fi
    
    export LC_CTYPE=en_US
    
    /usr/bin/expect $1 $2 $3 $4 $5 $6 $7 $8
    
    
    
    
    # 运行示例
    
    # bash /Users/test_user/scripts/login.sh /Users/test_user/scripts/remote.exp 172.88.88.88 22 test_user test_user_password 172.77.77.77 root 'root_password'
    
    # 如果使用了这种方式的话,iterm2 profile 也需要对应的修改一下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/265088.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Java+Springboot+Vue+elememt美食论坛平台设计实现

基于JavaSpringbootVueelememt美食论坛平台设计实现 🍅 作者主页 程序定制开发 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 文章目录 基于JavaSpringbootVueelememt美食论坛平台设计实现一…

【每日一题】移除石子使总数最小

文章目录 Tag题目来源解题思路方法一:贪心优先队列 写在最后 Tag 【贪心优先队列】【数组】【2023-12-23】 题目来源 1962. 移除石子使总数最小 解题思路 方法一:贪心优先队列 思路 本题比较简单,思路也十分清晰。对于 k 次操作&#xf…

[MTCTF 2022]easypickle

题目给了源码 import base64 import pickle from flask import Flask, session import os import randomapp Flask(__name__) app.config[SECRET_KEY] os.urandom(2).hex()app.route(/) def hello_world():if not session.get(user):session[user] .join(random.choices(&q…

乐吾乐大屏可视化前景和发展趋势

引言 在如今数智信息化时代,乐吾乐大屏可视化作为信息展示和决策支持的强大工具,正在迅速崛起,并在多个行业中发挥关键作用。本文将探讨乐吾乐大屏可视化的当前状态、未来前景以及发展趋势,以期为读者提供对这一技术的深入了解。 …

otter-harbor同步

一. 部署及依赖 otter Github (一). 服务启动 1. mysql 5.6版本以上,作为 otter-manger 使用的数据库 # mysql docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD123456 -d mysql:5.7 --character-set-serverutf8mb4 --collation-serverutf8mb4_un…

抖店只能用官方电子面单?2024抖店玩法解读,附面单使用教程

我是王路飞。 正在做抖店的商家,应该都发现一件事情了,那就是现在的抖店好像不让拍单了,只能使用抖音的电子面单,打单发货。 说实话,这种情况已经出现过太多次了,导致很多商家不以为然。 我曾经也说过&a…

SpringBoot找不到或无法加载主类

1,bug贴图 2,问题说明 之所以导致这个问题是因为新建项目的时候,项目目录是这样的com.lab.hei.springboot.dubbo.ProviderApplication 我觉得这个目录太长了,所以修改了目录,修改后cn.alisa.springboot.dubbo.Provider…

hab_virtio hypervisor 虚拟化

Linux的 I / O 虚拟化 Virtio 框架 简而言之,virtio是半虚拟化管理程序中设备上的抽象层。virtio由Rusty Russell开发以支持他自己的虚拟化解决方案lguest。本文从准虚拟化和仿真设备的介绍开始,然后探讨的细节virtio。重点是virtio2.6.30内核发行版中的…

实在智能斩获钛媒体2023全球创新评选科技类「 大模型创新应用奖」

近日,历时三天的钛媒体2023 T-EDGE全球创新大会以“新视野新链接”为主题在北京隆重举办。作为科创领域全新高度的年度盛事,大会吸引了AI各产业链近百位海内外创投人、尖端企业家、商业领袖和国际嘉宾齐聚一堂,围绕新一轮AI革命、智慧数字化、…

LeetCode刷题--- 目标和

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 http://t.csdnimg.cn/6AbpV 数据结构与算法 http://t.csdnimg.cn/hKh2l 前言:这个专栏主要讲述递归递归、搜…

论文配色(强烈推荐!!!)

目录 方案1(复古): 方案2(新特性): 方案3(渐变): 方案4(清新): 方案5(怀旧): 方案6&#xf…

数据库管理-第126期 如何将数据从11g弄到19c上(202301223)

数据库管理-第126期 如何将数据从11g弄到19c上(202301223) 这应该是2023年写的最后一篇关于Oracle的文章吧,其实手上的Oracle数据库最近都挺平稳的,没啥素材,在JiekeXu徐小强老师的群里征集了一下内容,其中…

基于Java+SpringBoot+vue+element疫情物资捐赠分配系统设计和实现

基于JavaSpringBootvueelement疫情物资捐赠分配系统设计和实现 🍅 作者主页 系统定制开发 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 文章目录 基于JavaSpringBootvueelement疫情物资捐赠…

零基础制作宠物用品小程序

随着人们对宠物用品的需求不断增长,越来越多的人开始探索如何制作一个专业的宠物用品小程序。而乔拓云作为一款功能强大的在线商城制作工具,成为了许多商家的首选。本文将详细介绍如何使用乔拓云制作宠物用品小程序,让你轻松上手,…

「Verilog学习笔记」序列发生器

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 timescale 1ns/1nsmodule sequence_generator(input clk,input rst_n,output reg data);reg [3:0] cnt ; integer num 11 ; always (posedge clk or negedge rst_n) beg…

pmp到底是什么?

一、PMP是什么 PMP 是项目管理的入门级证书,全称是项目管理专业人士资格认证,由美国项目管理协会(PMI)举办的,从1999 年到现在已经有20多年发展历史了。 顾名思义,PMP考试就是一场评估应试者是否具备专业…

鳄鱼目标检测数据集VOC格式100张

鳄鱼是一种生活在热带和亚热带地区的爬行动物,属于爬行纲鳄形目鳄鱼科。它们的体形庞大,有粗壮的四肢和强壮的尾巴,一般能长到2-6米长,体重可达500公斤以上。鳄鱼的皮肤粗糙,呈灰褐色或黑色,布满了坚韧的鳞…

目标检测应用场景—数据集【NO.24】行人车辆检测数据集2

写在前面:数据集对应应用场景,不同的应用场景有不同的检测难点以及对应改进方法,本系列整理汇总领域内的数据集,方便大家下载数据集,若无法下载可关注后私信领取。关注免费领取整理好的数据集资料!今天分享…

【优质书籍推荐】LoRA微调的技巧和方法

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。…

论文推荐:大型语言模型能自我解释吗?

这篇论文的研究主要贡献是对LLM生成解释的优缺点进行了调查。详细介绍了两种方法,一种是做出预测,然后解释它,另一种是产生解释,然后用它来做出预测。 最近的研究发现,即使LLM是在特定数据上训练的,也不能认…