SSH之 MAC Iterm2 + JumpServer 自动登录脚本

本地连接远端的服务器,Iterm2 可以说是MAC 上的一大利器了,配合脚本,可以一键直连服务器

最近因公司加强了服务器登陆验证,换了JumpServer 服务器,还增加了二次认证,必须用Google Authenticator输入6位动态验证码,才能成功登陆,这样的话每次都得打开手机,手动输入验证码比较麻烦,所以,我这么懒的程序猿怎么会安分的一步步操作呢,来个脚本

image.png

开始之前,先检查你的电脑装没装brew 和 expect,如果没有安装,先装完再进行后续步骤哈

安装brew

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" speed

安装expect
brew install expect

准备工作就绪,我们继续接下来的步骤

1、首先,给你的电脑装一个 oath-toolkit
brew install oath-toolkit
2、你还得获取到我上面截图的二维码下面的 Secret 后面的 key,用下面的命令验证一下你设置的对不对吧
oathtool --totp -b YOUR-PRIVATE-KEY
3、如果上面的都没有问题,直接来上脚本

#!/usr/bin/expect
set jumpusr user_name
set pwd password
set jumphost 172.16.XXX.XX
set host [lindex $argv 0]

catch {spawn ssh -p 22 $jumpusr@$jumphost}
expect "*password:*"
send "$pwd\r"
expect "*MFA*" {
        set code [exec sh -c {oathtool --totp -b YOUR-PRIVATE-KEY}]
        send "$code\r"}

expect {
"*Opt>*" {
    send "[lindex /$argv 0]\r";exp_continue}
"*Host*" {
    send "1\r1\r"}
}

# 此处看运维给你的什么权限,直接进入app的话下面的可以删除
expect "*$*" {
    send "sudo su - app\r"
}

interact

人行天地间 忽如远行客

27 声望
7 粉丝
0 条评论
推荐阅读
Mysql MDL+DDL 死锁
应用背景: {代码...} 问题描述 {代码...} 找到DBA去排查时,基于他们的经验,他们不承认这是数据库报出的死锁,反而怀疑是我们的应用代码或者JDBC有问题,这 ...问题复现在排查相关资料后,我断定了是mysql的锁的...

ruanjianershu1阅读 595

猿大师播放器在Chrome网页播放多路H.265海康威视RTSP视频流页面卡顿CPU占用高怎么办?
问: 试用猿大师播放器播放一路视频效果很不错,延迟可以控制在200毫秒左右,但是如果播放多路高清视频,CPU占用就会比较高,并且网页也会卡顿,该如何解决呢?答:猿大师播放器作为一款专业的流媒体播放器是支持...

李不白阅读 810

Jumpserver与Freeipa集成(以及其他配置)
jumpserver的安装参照:jumpserver的简单安装使用,Freeipa的安装参照:Freeipa的简单搭建配置。准备将Freeipa与Jumpserver集成。其实Freeipa搭建后linux客户端如果安装了Freeipa client。也能完成用户的授权权限...

对你无可奈何阅读 683

好饭不怕晚,Google基于人工智能AI大语言对话模型Bard测试和API调用(Python3.10)
谷歌(Google)作为开源过著名深度学习框架Tensorflow的超级大厂,是人工智能领域一股不可忽视的中坚力量,旗下新产品Bard已经公布测试了一段时间,毁誉参半,很多人把Google的Bard和OpenAI的ChatGPT进行对比,Goog...

刘悦的技术博客阅读 433

封面图
jumpserver的简单安装使用
服务器的管理停留在xshell 登陆管理的时代,主机设备数量少,单人操作的时候还能满足使用。现在的主机数量不多不少也有大几十台。然后就面临的多人的登陆与管理。过去都是直接给账户密码。但这样就会面临操作审计...

对你无可奈何阅读 412

什么是 Google Tag Manager 的 Data Layer Object?
在 Google Tag Manager 中,Data Layer Object 是一个JavaScript对象,它可以用于在页面上收集和传递数据。 Data Layer Object 通常用于将有关用户和页面的信息收集和传递给 Google Analytics 或其他第三方分析和...

JerryWang_汪子熙阅读 372

封面图
如何在 WordPress 中启用一键式 Google 登录
当您的用户可以使用他们的Google 帐户登录时,他们无需建立、记住或监控其他用户名和密码即可访问您的网站。他们的时间得以节省,您的转化率也会提高。在本教程中,我们将向您展示如何将一键式 Google 登录集成到...

六翼开源阅读 332

人行天地间 忽如远行客

27 声望
7 粉丝
宣传栏